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%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.
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
verwendenSie 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.
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 Ссылка
zum Hochladen von Dateien über Ajax gehen durch diese URL Ajax-Datei hochladen
Tags und Links jquery php ajax file-upload