【发布时间】:2011-10-20 12:21:03
【问题描述】:
我有一个有趣的问题正在尝试解决,想知道是否有人可以帮我解决一下。
我正在构建一个小工具,允许用户将文件拖放到我们的 CMS 中。虽然我的拖放部分工作正常(使用新的 HTML5 API),但我对文件上传的工作方式感到困惑,特别是因为我的限制是我无法修改任何服务器的功能。我查看了所有其他示例,它们都具有相对简单的用例,它们只是发送文件数据,而无需将所有内容转换为 multipart/form-data 等。
目前服务器有一个简单的表单,看起来有点像这样:
Name: [ input=text ]
File: [ input=file ]
Caption: [ textarea ]
当用户点击“保存”按钮时,会发出内容类型为 multipart/form-data 的 POST 调用。
最初我想我可以用我自己的隐藏输入控件替换当前输入控件(使用相同的“名称”属性),并将 base64 编码数据作为“值”,但是 CMS 需要一个“文件名”要通过,通常由 input=file 处理。例如,最后的帖子看起来有点像这样:
Content-Disposition: form-data; name="image_0"; filename="assets.jpg"
Content-Type: image/jpeg
<Some binary image data here>
我是不是完全走错了路?我应该只使用 XHR 对象吗?
干杯
【问题讨论】:
标签: javascript ajax forms html