背景:我必须在IE7-9中支持多个文件上传。我发现 uploadify 和 FileReader 都是基于 flash 的。 我们当前的文件上传允许用户选择文件、输入描述并选中一些复选框。这些数据同时发送到上传 servlet,servlet 获取文件数据、描述和复选框值,并将文件存储在服务器上,并向数据库中添加一个条目。
问题:uploadify 和 FileReader 都想将文件直接发送到服务器,我没有机会添加描述或设置任何标志。我现在已经使用了 FileReader 一些,并且可以拦截文件而不是将其发送到服务器。我想做的是获取二进制数据并将其放入表单中,让用户添加描述,然后使用二进制文件数据提交表单。 我已经准备好尝试在表单中添加隐藏字段,但数据似乎没有通过。
如果情况变得更糟,我想我可以上传文件,然后在提交表单时更新数据库,我不想这样做,但我认为这可行。 有谁知道如何将文件数据添加到表单中,然后让 servlet 将该数据识别为表单的一部分?
最佳答案
您可以在 Uploadify 中将数据与上传一起传递,只需使用 formData
属性,如下所示 ( found here ):
<input name='someKey' type='text' value='Some Value'/>
<input type="file" name="file_upload" id="file_upload" />
<script>
$('#file_upload').uploadify({
// Some options
'method' : 'post',
'formData' : { 'someKey' : $('input[name=someKey]').val() }
});
</script>
关于java - 将二进制数据添加到html表单中进行上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14886582/