将文件上传为json

时间:2014-10-29 09:27:06

标签: json forms file rest post

我想以json格式提交表单数据,如示例#9 http://darobin.github.io/formic/specs/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 个答案:

答案 0 :(得分:1)

由于第一份工作草案是2014年5月,我非常怀疑它是否有任何重要的浏览器支持。

目前,据我所知,发送JSON的唯一两种方法是:

  1. 作为标准URI编码形式的一个字段;在服务器上,您获取该字段的值,然后从中读取JSON。您的文件字段将以通常的方式发送。

  2. 通过ajax。但要以这种方式发送文件,您必须拥有modern browser(您不能使用IE8或9)。

  3. 目前,选项#1可能是您的最佳选择。