Ik heb een drag and drop area en een gewone input voor file uploads.
De drag and drop:
<div class="sfmform" id="drop-area"><h3 class="drop-text">Drag and Drop Images Here</h3></div>En de gewone form:
<form class="sfmform" action="" method="post" enctype="multipart/form-data">
<b>Upload Files</b>
<br /><br />
<input type="file" name="file" id="file" />
<br />
<input type="submit" class="Button Primary" name="upload" value="Upload" />
<br /><br />
</form>Dit is de afhandeling met php (die staat in hetzelfde bestand boven de form en boven de drag and drop area:
if($_SERVER['REQUEST_METHOD'] == "POST") {
// file is ready to be uploaded
$tmpFilePath = $_FILES['file']['tmp_name'];
$newFilePath = $dir.'/' . $_FILES['file']['name'];
if(move_uploaded_file($tmpFilePath, $newFilePath)) {
//echos succesvol geupload
}
}De var $dir wordt uitgelezen via de url op deze manier:
// read actual dir from url
$actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$strArr = explode("=",$actual_link);
$CurrentPath = $strArr[1];
if(isset($_GET['dir'])) {
$dir = $CurrentPath;
}Dus als mijn url string er zo uitziet: website.nl/sfm?dir=uploads/sfm/root/folder1
krijt $dir de volgende waarde toegekend: uploads/sfm/root/folder1
Dit is mijn ajax call:
function uploadFormData(formData) {
$.ajax({
url: "sfm",
type: "POST",
data: formData,
contentType:false,
cache: false,
processData: false,
success: function(data){
$('#drop-area').append(data);
}
});
}Probleem: doe ik de upload via de form dan komt ie netjes terecht in de waarde wat $dir heeft; die wordt uitgelezen via de url
Doe ik de upload via drag and drop dan komt de file ALTIJD in de root terecht; terwijl hij toch dezelfde php afhandeling voor uploaden volgt. Maw: hij kan blijkbaar de waarde van $dir niet lezen.
Als ik in de php het volgende neerzet:
// file is ready to be uploaded
$tmpFilePath = $_FILES['file']['tmp_name'];
$dir ="uploads/sfm/root/folder1"; // handmatig geset
$newFilePath = $dir.'/' . $_FILES['file']['name'];plaats ie de upload via drag and drop WEL in folder1.
Het betreft hier 1 file, sfm.php waarin de php staat, daaronder de form en de ajax call.
Kan iemand me zeggen waarom de variabele waarde van $dir niet uitgelezen kan worden via drag and drop en wel via de normale form upload? Beiden volgen exact dezelfde ph afhandeling voor upload, zoals hierboven