2014-10-29 68 views
0

我想以json格式提交表單數據,如示例#9 http://darobin.github.io/formic/specs/json/所示。將文件上傳爲json

我的形式如下:

<form id='myform' 
     enctype='application/json' 
     action=`http://localhost:8080` 
     method='post'> 
    <input type='text' name='textInput'> 
    <input id='file' type='file' name='file' multiple> 
    <button>submit</button> 
</form> 

但不幸的是,當我嘗試提交表單我看到他們爲以下FORMDATA(這不是JSON,只有文件名被髮送,無需編碼發送文件中的數據):

textInput:asdasd 
file:Screenshot from 2014-10-14 18:10:05.png 
file:Screenshot from 2014-10-25 11:25:26.png 

我也想我的字符串化形式JSON.stringify($("#myform").serializeArray());但結果: "[{"name":"textInput","value":"asdasdasd"}]" 從文件輸入丟失的數據。

發送表單數據爲json的最佳方式是什麼?

回答

1

作爲2014年5月的第一份工作草案,我非常懷疑它有任何重要的瀏覽器支持。

目前,據我知道只有兩種方式發送JSON是:

  1. 作爲一個標準的URI編碼形式一個領域;在服務器上,您將獲得該字段的值,然後從中讀取JSON。您的文件字段將以通常的方式發送。

  2. 通過ajax。但要發送文件的方式,你必須有一個modern browser(你不能使用IE8或9)。

現在,選項#1可能是您最好的選擇。

+0

是的。它不是目前的規格。加上,JSON文件必須是base64編碼,如果我沒有錯。 – Jarema 2014-10-29 09:39:43

+0

@Jarema:是的,但是支持它的瀏覽器會爲你做那件事。 – 2014-10-29 09:44:25