Webprofis is een Forum waarin je vragen kunt stellen die webgerelateerd zijn. Heb je vragen over of problemen met je Webpagina, HTML, CSS, Javascript, PHP of andere client of serverside scriptingtalen? Stel ze dan gerust op dit forum. Op dit forum zijn een aantal vrijwilligers actief die u graag met uw vragen willen helpen en u waar mogelijk een passend antwoord aanbieden. Hebt u zelf veel ervaring en kennis met betrekking tot het bovenstaande? U bent van harte welkom om uw kennis met anderen te delen!

We hopen dat eenieder op dit Forum een leerzame ervaring mag opdoen.

Team Webprofis

drag and drop upload komt niet in gewenste directory terecht

bewerkt zo 22 mei 2016 in PHP, MySQL Posts: 878
Loop tegen een probleem aan wat ik niet snap:
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
}
}
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 volgednde neerzet:
// file is ready to be uploaded	   
$tmpFilePath = $_FILES['file']['tmp_name'];
$dir ="uploads/sfm/$UserID/folder1"; // handmatig ingesteld
$newFilePath = $dir.'/' . $_FILES['file']['name'];
dan komt ie WEL in folder1 terecht.
Waar zit dit probleem? Als de upload via de ajax gaat kan ie blijkbaar niet de waarde van $dir lezen...
De upload via de form gaat wel goed


Reacties

  • PMPosts: 878
    probleem al opgelost: in de ajax moets het pad natuurlijk vermeld worden waar naar geupload moet worden:
    function uploadFormData(formData) {
    $.ajax({
    url: "<?php 'sfm?dir='.$dir; ?>",
    type: "POST",
    data: formData,
    contentType:false,
    cache: false,
    processData: false,
    success: function(data){
    $('#drop-area').append(data);
    }
    });
    }
Login of Registreer om te reageren.