Laden Sie mehrere Dateien mit jquery und coldfusion cffile hoch

8

Nicht wirklich eine Frage ... Ich wollte das nur irgendwo posten, weil ich es anderswo nicht finden konnte. Jetzt, da ich eine funktionierende Demo zusammengeschustert habe, dachte ich, ich würde sie teilen. Dies funktioniert auf Coldfusion- und Railo-CFML-Servern gleichermaßen.

Das Problem ist, dass für CFML-Entwickler ist, dass CFFILE nicht mit% funktioniert co_de% ... traditionell, wenn Sie drei Dateien hochladen wollte, und verwenden CFFILE am hinteren Ende würden Sie 3 separate Datei-Eingänge umfassen müssen auf Aufrufsseite.

Hier ist meine Lösung aus Gründen der Einfachheit. Er verwendet Jquery $ .ajax, um mehrere Aufrufe an CFFILE zu senden, und gibt die Ergebnisse an ein div auf der aufrufenden Seite zurück. Ich bin sicher, es gibt einen besseren Weg, dies zu tun, und mein Code ist wahrscheinlich ein vollständiger Hack, aber das folgende Beispiel funktioniert. Hoffe, das hilft jemandem.

%Vor%

Dies ist meine Verarbeitungsseite ... wieder auf das Nötigste reduziert: multiFileUploadAction.cfm

%Vor%

Das ist es in ... meinem Produktionscode erstelle ich eine JSON-Antwort, der die gespeicherte Dateinamen und den Pfad zur Datei enthält (wegen des ‚makeUnique‘ könnte es anders sein, dann, was gesendet wurde) Ich verarbeite auch die Datei zu Erstellen Sie ein Vorschaubild und senden Sie den Namen und den Pfad zurück an die aufrufende Seite. So kann ich auf der aufrufenden Seite ein Thumbnail anzeigen. Hoffe jemand findet das hilfreich.

    
Koreys 02.10.2013, 20:01
quelle

2 Antworten

0

Hier ist meine Lösung für ein ähnliches Problem, das ein anderer Benutzer hatte, wobei ich das HTML5-Attribut "multiple" für das Hochladen von Dateien verwendete. Sie können das Formular immer noch wie gewohnt hochladen, was POST-Dateien an den Server senden würde. Anstatt die Datei-Upload-Dienstprogramme von CF zu verwenden, können Sie einfach die Formulardaten durchlaufen und die einzelnen Schreibvorgänge selbst ausführen. So können Sie die Dateidetails in einer einzigen Anfrage serverseitig steuern.

ColdFusion-Behandlung von HTML5 & lt; Eingabe type="Datei" multiple="multiple" / & gt;

    
Tristan Lee 22.09.2014, 18:44
quelle
0

Mein Vorschlag an Sie wäre, sie als dataUrls zu veröffentlichen, wenn Sie die Möglichkeit haben, mehrere Strings gleichzeitig für Ihren Post zu senden. Sie benötigen tatsächlich kein Formular, um Bilder als Datenstrings zu veröffentlichen. Ich habe kürzlich an einem Projekt gearbeitet, bei dem ich angularjs verwenden musste, um einen Datei-Upload zu erstellen. Wenn Sie nicht einmal ein Formular verwenden müssen. Sie können es als Array von DataURLs senden und in Ihrem cfc durchlaufen. Alternativ können Sie eine Bibliothek wie die jquery uplofify oder etwas ähnliches verwenden, wenn die Abwärtskompatibilität ein Problem darstellt. Wenn Sie daran interessiert sind, wie Sie DataURLs durchschleifen und speichern, da sie Bilder sind, werde ich den Code veröffentlichen.

    
Jesse 22.10.2013 16:57
quelle

Tags und Links