关于javascript:如何将二进制多部分formdata作为base64发送?

How to send binary multipart formdata as base64?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
How can you encode to Base64 using Javascript?

我有一个基于Java、WIKET和jQuery的Web应用程序,它有一个功能,可以让用户通过多部分/表单数据上传文件(图像、PDF、RTF)。

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

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

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

有什么方法可以引导浏览器以base64或其他非二进制格式传输二进制文件吗?

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


似乎可以设置Content-Transfer-Encoding: base64
W3C报价:

Each part may be encoded and the"Content-Transfer-Encoding" header supplied if the value of that part does not conform to the default (7BIT) encoding

http://www.w3.org/tr/html401/interact/forms.html h-17.13.4.2

如果您使用的Java Web服务器不占用参数EDCOX1,则1。