2014-10-29 70 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