Javascript 如何将二进制多部分formdata作为base64发送?

Javascript 如何将二进制多部分formdata作为base64发送?,javascript,jquery,html,wicket,Javascript,Jquery,Html,Wicket,可能重复: 我有一个基于Java、Wicket和JQuery的web应用程序,它有一个功能,允许用户通过多部分/表单数据上传文件(图像、PDF、rtf) 我们的web安全基础设施对所有http流量进行过滤,以拾取可能的恶意内容,例如XSS攻击、SQL注入、缓冲区溢出等 该过滤器不区分普通文本输入字段和文件数据,因此它会从许多上传的二进制文件中拾取误报,从而阻止这些文件被上传。我无法更改安全策略 解决这个问题的最佳方法似乎是对文件数据进行base-64编码,以便使用与电子邮件客户端类似的内容传输

可能重复:

我有一个基于Java、Wicket和JQuery的web应用程序,它有一个功能,允许用户通过多部分/表单数据上传文件(图像、PDF、rtf)

我们的web安全基础设施对所有http流量进行过滤,以拾取可能的恶意内容,例如XSS攻击、SQL注入、缓冲区溢出等

该过滤器不区分普通文本输入字段和文件数据,因此它会从许多上传的二进制文件中拾取误报,从而阻止这些文件被上传。我无法更改安全策略

解决这个问题的最佳方法似乎是对文件数据进行base-64编码,以便使用与电子邮件客户端类似的内容传输编码:base64进行发送

是否有任何方法可以引导浏览器将二进制文件传输为base64或其他非二进制格式


如果没有,可以用一些JavaScript手动完成吗?

似乎可以设置
内容传输编码:base64

引用W3C:

如果每个部分的值不符合默认(7BIT)编码,则可以对每个部分进行编码,并提供“内容传输编码”标题


如果您使用的Java Web服务器没有使用参数
内容传输编码

,我认为“内容传输编码:base64”的存在将向服务器表明浏览器确实已将二进制数据转换为base64进行传输。它不是由开发人员设置的,而是浏览器如何响应文件输入标记。但是如何让浏览器进行base64编码呢?或者你自己也可以进行base64编码,现在很少有jQuery插件:为什么我的问题以重复的形式结束?我没有问“如何使用JavaScript进行base64编码”。我问是否有一种方法可以将二进制表单数据编码为某种字符格式,例如在表单提交的上下文中使用base64,无论是自动编码还是使用JavaScript辅助编码。我没有在stackoverflow的其他地方发现这个问题。我同意,这不是一个完全相同的问题。