Php base 64对表单文件进行编码

Php base 64对表单文件进行编码,php,javascript,forms,html,fileapi,Php,Javascript,Forms,Html,Fileapi,我正在用JS和PHP编写一个非常简单的文件共享站点。我有一个拖放操作,所以浏览器在拖放时会得到一个文件对象,我试图从那里向上传页面发送xhr请求。然而,我似乎不能将一个二进制文件对象放在请求头中,所以我想知道如何对其进行base64编码 在PHP中,我会使用base64_encode,但我甚至还没有看到PHP页面。也许你可以建议一个替代我现在的方法 哦,在接收它的PHP中,它在对文件进行base64\u解码后写入一个半随机文件 编辑:我已经解决了这个问题,但是没有一个好的答案。谢谢你的帮助 这是

我正在用JS和PHP编写一个非常简单的文件共享站点。我有一个拖放操作,所以浏览器在拖放时会得到一个
文件
对象,我试图从那里向上传页面发送
xhr
请求。然而,我似乎不能将一个二进制
文件
对象放在请求头中,所以我想知道如何对其进行base64编码

在PHP中,我会使用
base64_encode
,但我甚至还没有看到PHP页面。也许你可以建议一个替代我现在的方法

哦,在接收它的PHP中,它在对文件进行
base64\u解码后写入一个半随机文件

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


这是我的演示:

目前只有Firefox才支持一个函数,
xhr.sendAsBinary
,但现在您可以使用此自定义函数在Javascript中进行Base64编码:

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


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

有什么原因不使用类似的方法吗?我不知道为什么要添加一个二进制文件“作为请求头”(这对我来说没有什么意义),但是在发送之前必须对其进行base64编码似乎有点愚蠢,因为HTTP可以很容易地处理双向发送二进制数据()。再说一次,我不熟悉文件API,所以我不确定您可能会用它做什么特殊的事情(在发送之前是否转换文件?)。也许我错过了这个练习的重点