fileupload mit ajax Formular-Daten anhängen
selfmade01
- javascript
Hallo,
sorry erstmal, wusste es im Betreff nicht besser zu beschreiben.
Ich arbeite hier mit Bootstrap (incl. modal bei meinen Formularen), dropzone.js (für den Dateiupload)
aktuell funktioniert der Dateiupload sehr gut. da ich jedoch ein komplettes Formular habe also auch mit anderen Daten wollte ich die Übertragung der Image-Datei mit den Formulardaten koppeln.
Weiss nur nicht wie ich dazu ajax erweitern muss.
Hier mal der js-code.
$('button#safeInfoDetails').click(function(){
var myform = $('#myform');
var fd = new FormData();
$.each(myform.serializeArray(), function(i, item) {
//hier wird das Feld hinzugefügt
fd.append(item.name, item.value);
});
myform.find('input[type=file]').each(function(){
var field_name = $(this).attr('name');
var files = $(this).data('my_input_files');
if(files && files.length > 0) {
for( var f = 0; f < files.length; f++ ) {
fd.append(field_name, files[f]);
}
}
});
url = myform.attr('action');
url = url + '?filename=aha.jpg'; // war nur ein test um den namen des images zu ändern
var deferred = $.ajax({
url: url,
type: myform.attr('method'),
processData: false,//important
contentType: false,//important
dataType: 'json',//depending on your server side response
data: fd //das möchtze ich erweitern mit meinen andferen Formularfeldern
})
deferred.done(function(result) {
//on success (successful response from server)
}).fail(function(result) {
//unable to receive a valid response from server
});
})
});
hier mein php-script was oben mit der "url" aufgerufen wird
<?php
$ds = DIRECTORY_SEPARATOR; //1
$storeFolder = '../../images/info'; //2
$_FILES['myfile']['name'] = ($_GET["filename"]);
//wahrscheinlich kann man das noch besser lösen :( mit dem $_GET
if (!empty($_FILES)) {
$tempFile = $_FILES['myfile']['tmp_name']; //3
$targetPath = dirname( __FILE__ ) . $ds. $storeFolder . $ds; //4
$targetFile = $targetPath. $_FILES['myfile']['name']; //5
move_uploaded_file($tempFile,$targetFile); //6
}
?>
wäre super hier eine kleine Hilfestellung zu bekommen
Grüße Jürgen
Hallo,
mist, die name-tags im Formular waren nicht gesetzt.
Jetzt geht es
Grüße Jürgen