base 64编码表单文件

时间:2012-03-03 19:34:42

标签: php javascript forms html5 fileapi

我正在用JS和PHP编写 very 简单文件共享站点。我有一个拖放工作,所以浏览器在删除时会得到一个file对象,然后我尝试将xhr请求发送到上传页面。但是,我似乎无法在请求标头中删除二进制file对象,因此我想知道如何对base64进行编码。

在PHP中,我使用base64_encode,但我还没在PHP页面。也许你可以为我现在的方法建议一种替代方法吗?

哦,在收到它的PHP中,它在base64_decode文件后写入半随机文件。

编辑:我解决了这个问题,但没有一个好的答案。谢谢你的帮助!

这是我的演示:http://bernsteinbear.com/up

2 个答案:

答案 0 :(得分:3)

目前只有Firefox支持的功能xhr.sendAsBinary,但现在你可以使用这个自定义功能在Javascript中进行Base64编码:

http://www.webtoolkit.info/javascript-base64.html

或者,您可以自己实施sendAsBinary,如下所示:

http://hublog.hubmed.org/archives/001941.html

请注意,Base64方法是目前最兼容的方法。

答案 1 :(得分:0)

你有没有理由不使用像Valumns File Uploder这样的东西?我不知道为什么你想要添加一个二进制文件“作为请求标题”(这对我来说没什么意义),但是当HTTP可以处理发送二进制数据时,在发送之前必须对它进行base64编码似乎有点傻两个方向都很容易(example with forms)。然后,我不熟悉File API,所以我不确定你可能会用它做什么特别的事情(你在发送之前是否正在转换文件?)。也许我错过了这个练习的重点。