selfmade01: fileupload mit ajax Formular-Daten anhängen

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

  1. Hallo,

    mist, die name-tags im Formular waren nicht gesetzt.

    Jetzt geht es

    Grüße Jürgen