2017-03-25 2 views
-2

Polymer 1,0Eisen-Form-Upload-Bild arbeiten woes- um verliert andere Daten

ich eine Form haben, die der Benutzer Textfelder füllt, Radio-Buttons, etc. Sie auch Fotos hochladen.

Da Eisen-Form nicht mutlipart/form-data unterstützt, ich bin mit der Eisen-Form preSubmit Ereignis Funktion/Abhilfe described here

this.formData.addEventListener('iron-form-presubmit',()=> { 
     var bar = new FormData(); 
     bar.append('listingImage', this.binaryImages[0]); 
     this.formData.request.body = bar; 
     this.formData.request.contentType = undefined; 
    }); 

Dies funktioniert und ich bin in der Lage, erfolgreich Bilder auf meinen Server laden Formulardaten verwenden. Ich verliere jedoch alle anderen Formulardaten, die normalerweise im Körper wären ... die Textfelder, Optionsfeldauswahlen, usw.

Ist es mit Eisenform möglich, vorhandene Formulardaten beizubehalten und die Bilder anzufügen diese Problemumgehung?

Antwort

1

Sie erstellen ein neues FormData, in dem Sie das Bild hinzufügen, und überschreiben dann den ursprünglichen Anfragekörper (formData). Sie sollten das Bild nur an den vorhandenen Anfragetext anhängen, anstatt einen neuen zu erstellen.

this.formData.addEventListener('iron-form-presubmit',()=> { 
    this.formData.request.body.append('listingImage', this.binaryImages[0]); 
}); 
+0

'this.formData.append ('listingImage', this.binaryImages [0]);' 'funktioniert, ohne ein neues Formularobjekt zu erstellen. Der Inhaltstyp lautet jedoch "Content-Type: text/plain; charset = UTF-8." – dman