我正在用JS和PHP编写 very 简单文件共享站点。我有一个拖放工作,所以浏览器在删除时会得到一个file
对象,然后我尝试将xhr
请求发送到上传页面。但是,我似乎无法在请求标头中删除二进制file
对象,因此我想知道如何对base64进行编码。
在PHP中,我使用base64_encode
,但我还没在PHP页面。也许你可以为我现在的方法建议一种替代方法吗?
哦,在收到它的PHP中,它在base64_decode
文件后写入半随机文件。
这是我的演示:http://bernsteinbear.com/up
答案 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,所以我不确定你可能会用它做什么特别的事情(你在发送之前是否正在转换文件?)。也许我错过了这个练习的重点。