java - 将二进制数据添加到html表单中进行上传

标签 java javascript html

背景:我必须在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/

相关文章:

javascript - 我该如何修复 Bootstrap 轮播?

javascript - 如何在 JavaScript 中将命名 HTML 实体转换为数字 HTML 实体?

javascript onclick随机工作

html - 悬停在重叠的 CSS3 形状上

javascript - 表中的 jQuery Parent()

java - 如何在 SPARQL 中过滤 DBpedia 结果

java - 如何获取和设置networkaddress.cache.ttl的值

java - 如何使用 Java 在 Eclipse 中使用 Web 服务(JAX - RS)从数据库中检索数据

Java 缓冲读取器,如何使用 br.readLine(System.in) 读取一行并将其转换为 char?

Javascript递归函数似乎在第一次通过后退出