1

我正在用 JS 和 PHP 编写一个非常简单的文件共享站点。我已经进行了拖放操作,因此浏览器file在拖放时会获取一个对象,然后我尝试从那里向xhr上传页面发送请求。但是,我似乎不能只file在请求标头中放置一个二进制对象,因此想知道如何进行 base64 编码。

在 PHP 中我会使用base64_encode,但我什至还没有在 PHP 页面上。也许您可以建议我目前使用的替代方法?

base64_decode哦,在接收它的 PHP 中,它会在ing文件后写入一个半随机文件。

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

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

4

2 回答 2

3

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

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

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

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

Just be aware that the Base64 method is currently the most compatible method.

于 2012-03-03T20:10:50.270 回答
0

您是否有任何理由不使用Valumns File Uploder之类的东西?我不知道你为什么要添加一个二进制文件“作为请求标头”(这对我来说意义不大),但是当 HTTP 可以处理发送二进制数据时,必须在发送之前对其进行 base64 编码似乎有点愚蠢两个方向都很容易(例如表格)。再说一次,我不熟悉 File API,所以我不确定你可能会用它做什么特别的事情(你在发送之前是否转换了文件?)。也许我错过了这个练习的重点。

于 2012-03-03T20:37:48.080 回答