Erfolg einreichen, aber Upload funktioniert nicht in Kombinationsform

9

Beim Versuch, submit und upload in einem Formular zu kombinieren, habe ich ein Problem beim Hochladen, aber beim Abschicken ist das kein Problem.

JQuery + Ajax:

%Vor%

PHP:

%Vor%

Wie lege ich den Upload-Code korrekt auf diese Seite? also könnten beide arbeiten. Verzeichnisberechtigung: chmod 777 data

Die Datei wird im Formular nach dem Senden (nicht senden) zurückgelassen.

AKTUALISIEREN

Nach dem Verschieben des Upload-Codes vor dem Wechsel habe ich folgenden Fehler:

%Vor%

bedeutet, dass das Formular den Wert uploadedfile nicht sendet. Nach dem Überprüfen des Parameters sind keine uploadedfile enthalten. warum passiert es? Sogar dieser Wert ist im Formular enthalten und verwendet .serialize() .

%Vor%     
nunu 14.12.2012, 04:39
quelle

6 Antworten

2
%Vor%      

bedeutet, dass das Formular den Wert der hochgeladenen Datei nicht sendet. Nach dem Überprüfen des Parameters ist keine Upload-Datei enthalten. Warum passiert es?

Sie können keine Dateien über den browserübergreifenden ajax von Vanille hochladen , wie z. B. das, was jQuery verwendet. Punkt, Punkt, Ende der Geschichte.

Wenn Sie das Hochladen ohne Seitenaktualisierung durchführen müssen, besteht der gängige Trick darin, ein iframe zu erstellen und das Formular an es zu senden. Ein weiterer Trick ist die Verwendung der experimentellen Datei-API , die als Teil von HTML5 verfügbar ist. Dies kann ein Schmerz sein, um mit dir selbst umzugehen, aber es sollte gut funktionieren, wenn du alles mit der Hand machen willst.

Ich empfehle dringend, hierfür ein Datei-Upload-Widget eines Drittanbieters zu verwenden. Ich habe Glück gehabt mit Plupload , aber einige Leute empfehlen auch Uploadify . Sie können beide wahlweise ein Flash- oder HTML5-Backend verwenden, um den Upload durchzuführen, was den Benutzern auch eine glückliche kleine Fortschrittsanzeige gibt.

    
Charles 20.12.2012, 05:46
quelle
0

Sie sollten XHR2 verwenden, um Dateien über AJAX hochzuladen.

Ein Beispiel:

Javascript / Kundenseite:

%Vor%

HTML:

%Vor%

PHP / Serverside (upload.php):

%Vor%

Dies war ein einfaches Beispiel ohne Fehlerprüfung. Bitte verwenden Sie diesen Code nicht für die Produktion. Und wenn Sie große Dateien (in GB) hochladen möchten, sollten Sie webworkers

verwenden     
adi rohan 20.12.2012 06:39
quelle
0

Sie können Uploadify verwenden, um den Datei-Upload zu verarbeiten. Es bietet " onUploadSuccess " Callback-Funktion. Von wo Sie die hochgeladenen Dateiinformationen (Dateiname, Pfad usw.) erhalten können. Sie können diese Informationen verwenden und ein ausgeblendetes Eingabefeld in Ihrem Formular aktualisieren. Und dann können Sie auf die Informationen auf der Serverseite zugreifen und sie manipulieren.

Hoffe, das hilft.

    
Faraz 20.12.2012 10:29
quelle
0

Es ist unmöglich Dateieingabedaten nur über $ .ajax zu senden. Ich habe erfolgreich jQuery Form Plugin Ссылка verwendet. Es umschließt jedes Formular in AJAX-Verarbeitung und fügt viele nützliche Rückrufoptionen hinzu. Es macht auch einige kluge Dinge, um Datei-Uploads zu behandeln. Für ältere Browser (die XHR Level 2 nicht unterstützen) gibt es möglicherweise einige geringfügige zusätzliche serverseitige Änderungen, aber ansonsten funktioniert es sofort.

Spezifische Dokumente zur Verwendung des jQuery-Formulars zur Verarbeitung von Datei-Uploads finden Sie unter Ссылка

    
Igor Raush 20.12.2012 10:43
quelle
0

Besser geht es einfach, mit separatem Prozess:

%Vor%

beide können normal arbeiten, der beste Weg ist nicht die komplizierte Art und Weise zu tun, wenn der einfache getan werden kann.

    
nunu 21.12.2012 03:57
quelle
-2

zum Hochladen von Dateien über Ajax gehen durch diese URL Ajax-Datei hochladen

    
Habid Pk 19.12.2012 06:54
quelle

Tags und Links