2016-12-25 40 views
0

我們試圖創建一個基於聚合物的應用,其中一部分用戶需要上傳文件到在處理所有數據的Web服務應用。聚合物:使用後鐵表格文件上傳應用程序/ JSON的contentType

所有的例子,我們發現使用FormData對象並重置iron-formcontentType電場,使iron-form使用由多個部分組成的編碼。我們使用的Web服務只接受application/json所以這不是真正爲我們的選擇。

理想情況下,iron-form只支持<paper-input type="file">,並且會將文件內容加載到JSON字段中,但它只是提交文件名。也許我們需要實現pre-submit事件處理程序來讀取JavaScript中的文件和相關iron-form字段設置爲文件的文本?

回答

1

行爲是as specified in HTML5

否則,如果字段元素是輸入元件,其類型 屬性是在文件上傳狀態,則對於在 選擇的輸入元件的每個文件,追加的條目以名稱 作爲名稱的形式數據集,文件(由名稱,類型和正文組成) 作爲值,並鍵入作爲類型。

而且在4.10.22.8(內容類型text/plain):

如果項的類型是「文件」,取代它,只有該文件的名稱 值。

請注意,application/json基本上是回落到那。

所以,你將不得不read the file content in JavaScript並把它放入JSON有效載荷自己。

+0

要將文件內容提交給Web服務,'readAsDataURL()'(從您的答案鏈接)不是非常有用 - 它大多隻適合將媒體文件作爲資源加載到當前頁面。我們已經實現了類似的東西,但是使用了'readAsText()'。 – Guss

+0

這取決於文件類型確實如此。如果你處理的文本文件,你是安全與'readAsText'工作,而'readAsDataURL'可與二進制和文本內容。 – geekonaut

相關問題