• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Jquery Ajax File-Upload

TecEye

New member
Man momentan tun sich viele Baustellen auf, manchmal läuft alles wie gemiert und dann kommt wieder ne zeit wo es an jeder stelle harkt, naja sei es drum, weiter gehts :D

Und zwar bin ich gezwungen einen minimalistischen fileupload mit Jquery mittels Ajax zu realisieren

PHP:
echo "<form action='#' enctype='multipart/form-data' method='post'>";
		echo "<input type='file' name='file_upload' id='file_upload' multiple>";
		echo "<input type='submit' name='submit' value='Hochladen'>";
	echo "</form>";

so das nur mal so, hier mein eigentliches Jquery, das hab ich mal aus irgendeinem Skript extrahiert:
Code:
$(function(){

	var files;
	$('input[type=file]').on('change', prepareUpload);
	$('form').on('submit', uploadFiles);
	function prepareUpload(event){ files = event.target.files; }

	function uploadFiles(event){
		event.stopPropagation();
                event.preventDefault();

	       var data = new FormData();
	       $.each(files, function(key, value){ data.append(key, value); });
        
        $.ajax({
            type: "POST",
            url: baseurl+"include/ajax.php",
            data: data,
            cache: false,
            dataType: 'json',
            processData: false,
            contentType: false,
            success: function(){ alert('uploaded'); }
        });
    }

So und das wars auch schon :D mir ist klar dass ich es mit JSON regeln muss, jetzt schicke ich die daten an meine ajax.php und dann verarbeite ich die quasi so:

PHP:
$data = array();
	if(isset($_GET['files'])){	
		$files = array();
		$uploaddir = './uploads/';
		foreach($_FILES as $file){
			if(move_uploaded_file($file['tmp_name'], $uploaddir .basename($file['name']))){
				$files[] = $uploaddir .$file['name'];
			}
		}
;
	}


So, zuerst einmal, es funktioniert natürlich nicht, wär ja auch zu schön gewesen. Zweitens, wie häng ich data noch eine variable "action" an? da meine ajax.php mehrere functionen beinhaltet.
 
hat das schon mal jemand hier gemacht? Ich hab wirklich leider nicht die zeit mich damit momentan intensiv auseinanderzusetzen. Muss ich im neuen Jahr mal nachholen, brauch aber noch schnell eine Lösung vor Weihnachten, wäre wirklich dankbar für einen kleinen Codeschnipsel, der mir die dateien an meine ajax sendet
 
Dazu bitte eine Besonderheit des IE 8 beachten, falls das in Betracht kommt: javascript - getting access is denied error on IE8 - Stack Overflow
Ob das immer noch so ist hab ich nicht getestet.

Auf Deutsch auch in #71 dieses Threads hier: http://forum.jswelt.de/javascript/58467-problem-formdata-jquery-4.html#post372626


und hier gilt immer noch #72 http://forum.jswelt.de/javascript/58467-problem-formdata-jquery-5.html#post372629
hat das schon mal jemand hier gemacht? Ich hab wirklich leider nicht die zeit mich damit momentan intensiv auseinanderzusetzen. Muss ich im neuen Jahr mal nachholen, brauch aber noch schnell eine Lösung vor Weihnachten, wäre wirklich dankbar für einen kleinen Codeschnipsel, der mir die dateien an meine ajax sendet
der ist doch im link
 
Zuletzt bearbeitet:
Ihr diskutiert auch echt über alles :D also ohne FormData() ? Bitte um kleines Snippet wer hat...danke ;)
 
Das heißt, das würde vom Browser auch abgewiesen, wenn es nicht mit FormData() gemacht würde? Richtig verstanden?
ja
Was wäre denn ein anderer Fall, wo das zuträfe?
dein bsp bei Stack Overflow dort ist auch selbst noch auf ein link auf 1 anderen fall

also ohne FormData() ?
nein, per xmlhttprequest geht es nur mit FormData()

Bitte um kleines Snippet wer hat...danke ;)
unter dem link den ich gepostet habe ist ein beispiel nativ und eins mit jquery. was willst du mehr?
 
Zurück
Oben