Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[php] upload script met folderkeuze

Pagina: 1
Acties:
  • 359 views

  • daanh
  • Registratie: September 2008
  • Laatst online: 29-07 13:49
Hallo! Ik probeer een upload script te maken of aan te passen.met de mogelijkheid om te kiezen uit upload folders. Nu heb ik uploadifive gevonden, een heel mooi systeem voor uploaden, maar ik krijg niet voor elkaar dat hij een bestand in de juiste folder wegzet. Wel een keuzemenu met folders, te zien op hu.bugs3.com.

index.php:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>UploadiFive Test</title>
<script src="jquery.min.js" type="text/javascript"></script>
<script src="jquery.uploadifive.min.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="uploadifive.css">
<style type="text/css">
body {
font: 13px Arial, Helvetica, Sans-serif;
}
.uploadifive-button {
float: left;
margin-right: 10px;
}
#queue {
border: 1px solid #E5E5E5;
height: 177px;
overflow: auto;
margin-bottom: 10px;
padding: 0 3px 3px;
width: 300px;
}
</style>
</head>

<body>
<h1>UploadiFive Demo</h1>

<form action="index.php" method="post">
<div id="queue"></div>
<select name="folderchoose" id="folderchoose">

<?php
if ($handle = opendir('uploads')) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
?> <option><? echo "$file\n "; ?></option> <?
}
}
closedir($handle);
}

?>
</select>
<input id="file_upload" name="file_upload" type="file" multiple="true">
<a style="position: relative; top: 8px;" href="javascript:$('#file_upload').uploadifive('upload')">Upload Files</a>


</form>


<script type="text/javascript">
<?php $timestamp = time();?>
$(function() {
$('#file_upload').uploadifive({
'auto' : false,
'checkScript' : 'check-exists.php',
'formData' : {
'timestamp' : '<?php echo $timestamp;?>',
'token' : '<?php echo md5('unique_salt' . $timestamp);?>'
},
'queueID' : 'queue',

'uploadScript' : 'uploadifive.php',
'onUploadComplete' : function(file, data) { console.log(data); }
});
});
</script>

</body>
</html>

en in een anders bestand, uploadifive.php:

<?php
/*
UploadiFive
Copyright (c) 2012 Reactive Apps, Ronnie Garcia
*/

// Set the upload directory
$uploadDir = '/uploads/';

// Set the allowed file extensions
$fileTypes = array('jpg', 'jpeg', 'gif', 'png'); // Allowed file extensions

$verifyToken = md5('unique_salt' . $_POST['timestamp']);

if (!empty($_FILES) && $_POST['token'] == $verifyToken) {
$tempFile = $_FILES['Filedata']['tmp_name'];
$uploadDir = $_SERVER['DOCUMENT_ROOT'] . $uploadDir . $_POST[folderchoose];
$targetFile = $uploadDir . $_FILES['Filedata']['name'];

// Validate the filetype
$fileParts = pathinfo($_FILES['Filedata']['name']);
if (in_array(strtolower($fileParts['extension']), $fileTypes)) {

// Save the file
move_uploaded_file($tempFile, $targetFile);
echo 1;

} else {

// The file type wasn't allowed
echo 'Invalid file type.';

}
}
?>

Het lijkt erop alsof $_POST[folderchoose] leeg is, want hij laadt gewoon naar uploads...

Weet iemand wat ik fout doe? Ik heb niet veel php ervaring dus rommel maar wat aan... ;)

Thanks. Daan

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 03:21

F.West98

Alweer 16 jaar hier

Tips:
Nergens wordt de folderchoose meegegeven in index.php
Het zou dan $_POST['folderchoose'] moeten zijn, met enkele haakjes

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


  • daanh
  • Registratie: September 2008
  • Laatst online: 29-07 13:49
Bedankt voor de tips. Hoe krijg ik folderchoose dan mee naar de rest van het script?

<a style="position: relative; top: 8px;" href="javascript:$('#file_upload').uploadifive('upload', 'folderchoose')">Upload Files</a> werkt niet...

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 22:23

Creepy

Tactical Espionage Splatterer

Dat je weinig PHP ervaring hebt wil natuurlijk niet zeggen dat wij dan maar jouw probleem moeten oplossen en dat je zelf niet hoeft te gaan debuggen ;) Zie ook Programming FAQ - Algemeen - Debuggen

Dus is $_POST[folderchoose]? Dat kan je dus prima zelf controleren? En waarom is deze dan leeg, ik hoop dat je dat op dit moment ook zelf wel in ziet..

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • Solopher
  • Registratie: December 2002
  • Laatst online: 30-10 12:28
Als je files wilt uploaden via een formulier moet je wel een enctype zetten.

HTML:
1
<form action="index.php" method="post" enctype="multipart/form-data">


Misschien dat het hierom mis gaat?

  • daanh
  • Registratie: September 2008
  • Laatst online: 29-07 13:49
En waarom is deze dan leeg, ik hoop dat je dat op dit moment ook zelf wel in ziet..
Eh nee, ik geef het op, zeg het maar? ;)

[ Voor 9% gewijzigd door daanh op 24-12-2012 13:17 ]


  • Barryvdh
  • Registratie: Juni 2003
  • Laatst online: 21:50
Je moet die folder dus meesturen in je formData. De bestanden worden niet verstuurd via de form, maar via het javascript script, net als de token/timestamp.
Dan heb je dus iets als 'folderchoose' : $('#folderchoose option:selected').val()

En er zitten javascript errors in je script, heb je gewoon de handleiding gevolgd? http://www.uploadify.com/...implementing-uploadifive/
Volgens mij heb je die Upload Files knop niet nodig, en wat je nu als javascript: link doet, werkt iig niet. Ook staat er in je opties zomaar een dubbele punt, zonder key/value, dat geeft ook errors.

(Verder, zet even je code tussen [ code] tags.)

[ Voor 61% gewijzigd door Barryvdh op 24-12-2012 13:40 ]


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 22:23

Creepy

Tactical Espionage Splatterer

daanh schreef op maandag 24 december 2012 @ 13:17:
[...]


Eh nee, ik geef het op, zeg het maar? ;)
Hoe je upload script te gebruikt staat dus gewoon uitgelegd op http://www.uploadify.com/.../implementing-uploadifive. Als dat dan niet lukt en je vraagt het hier is dat niet heel erg, maar als je vervolgens zelf niet er nog wat extra moeite in te stoppen zodat je snapt wat je aan het doen bent, dan houdt het hier op. We verwachten hier die inzet wel. Het is hier, ondanks dat sommige mensen je anders willen doen geloven, geen helpdesk om ff je code te laten fixen.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.