2013-02-15 4 views
10

Ich liebe wirklich die clientseitige Verarbeitung der Auswahl einer Datei und einer Vorschau mit der Option zum Abbrechen oder Löschen.blueimp jQuery-Datei-Upload ohne Ajax

Allerdings möchte ich die Seite mit einem Formular hochladen und ich brauche keinen Ajax. Ich habe mit all den Optionen herumgespielt und ich kann sowieso nichts finden, um mit den synchron ausgewählten Dateien zu schreiben.

Ist es möglich, data.files mit dem Formular zu senden?

+0

Ein Datei-Upload ohne AJAX ist in den meisten Sprachen ziemlich einfach. Es scheint, dass deine Frage nicht ganz klar ist. http://www.whathaveyoutried.com –

+0

Jay Blanchard haben Sie den Blueimp jQuery-File-Upload verwendet? Ich verstehe, dass es sehr einfach ist, einen Datei-Upload ohne Ajax zu machen, das war nicht meine Frage. Meine Frage verwendete blueimp jQuery-File-Upload, um einen synchronen Formular-Post zu erstellen. – Topaz

+1

Das Buchen von Dateien mit einem Formular erfordert eine Upload-Komponente, um mit der Formularbuchungskomponente zu gehen, aber ich bin unsicher, was Sie in diesem Zusammenhang "synchron" meinen? Willst du die Formulardaten posten und gleichzeitig etwas hochladen? Wenn ja - https://github.com/blueimp/jQuery-File-Upload/wiki/How-to-submit-additional-form-data –

Antwort

9

Sie können Dateien über ein Standardformular senden, indem Sie die Datei "blueimp jQuery-File-Upload" verwenden, indem Sie die Option replaceFileInput auf false setzen.

Aus der Dokumentation:

Standardmäßig wird die Datei Eingabefeld mit einem Klon nach jedem Eingabefeld Änderungsereignis ersetzt. Dies ist für die iframe Transportwarteschlangen erforderlich und ermöglicht Ereignisse Änderung für die gleiche Datei Auswahl gefeuert werden, aber kann, indem diese Option auf false

+0

Wie können wir diese Option dynamisch ändern? Ich habe eine automatische Speicherung (über Ajax) Formular, die Benutzer deaktivieren kann und so sollte er in der Lage sein, Formular normal einzureichen. Gerade jetzt, wenn die automatische Speicherung deaktiviert ist und der Benutzer das Formular abschickt, werden ausgewählte Dateidaten nicht an den Server übergeben. –

+0

Ein großer Dank von mir. –

-2

blueimp jQuery-File-Uploader wird erstellt, für die einfache Ajax-Datei deaktiviert werden hochladen. Wenn Sie einfache, mehrfache Dateieingaben auf Ihrem Server veröffentlichen möchten. Sie müssen mithilfe der bereitgestellten API ändern, um zu ändern, wie sie sich verhalten soll.

Ich würde vorschlagen, andere Bibliothek zu verwenden.

Dies ist einer von ihnen, dass ich auf dem Netz gegründet:
http://www.fyneworks.com/jquery/multiple-file-upload/

Ich denke, es wird einfacher, diese Bibliothek zu verwenden und optimiert die Benutzeroberfläche, die ähnlich wie jQuery-Datei-Upload.

Hier ist ein Codebeispiel, um die Vorschau der Bilddatei vor dem Hochladen auf den Server anzuzeigen.
http://blog.revathskumar.com/2012/04/html5-show-thumbnail-preview-of-image.html

einfach die MultiFile.addToList Funktion auf Linie ändern 283

-1

Es kann durch Drehen Hochlade auf false, sammeln Sie die Dateien in einem Array, dann t Ende machen einen einzigen Ajax-Aufruf mit allen getan werden Dateien zusammen mit den Formulardaten, wie beschrieben here.

-1
Use config replaceFileInput = false; 
jQuery('#add_new_product_form').fileupload({ 
      // Uncomment the following to send cross-domain cookies: 
      //xhrFields: {withCredentials: true}, 
      fileInput: jQuery('#upload-video'), 
      replaceFileInput: false, 
      ...... 
}) 

Und Controller Sie _FILES $ erhalten Videodaten zu erhalten.

Verwandte Themen