Apple 已经改变了管理 iWork 文件的方式。这些文件现在是一个包,其内容很像他们的应用程序。我需要创建一个可以接收多个文件的上传表单。主要是图像,但也有一些页面和数字。删除的文件最多可达 15 个,并将使用 PHP 在服务器端进行排序。那已经建好了。
我的问题是。
如何获取要上传的页面文件?到目前为止,我已经尝试了很多预先构建的解决方案。
我也一直在从头开始构建。“dataTransfer”不喜欢它,它说它是一个目录。FileReader 看到它但是当我尝试执行以下操作时
for (var i = 0; i < items.length; ++i) {
var entry = items[i].type;
if (entry == "image/png" || entry.type == "image/jpg" || entry.type == "image/jpeg" ) {
formData.append("file" + i , items[i]);
} else {
var fileReader = new FileReader();
var binary = fileReader.readAsBinaryString(items[i]);
var blob = new Blob([binary], {type: blob});
formData.append("file" + i , blob);
它返回未定义并弹出以下错误"failed to load resource blob:http://localhost/<RANDOM BLOB STRING HERE>"
当我解码 blob 服务器端时,不出所料,我得到一个 0Kb 大小的文件,所以它永远不会去。
我真的只想将所有文件放入服务器上的文件夹中。我什至不介意我是否必须尽可能低效地为每个文件发送服务器请求。
我也尝试过 base64 编码,我再次得到类似的结果。我也尝试过 XHR.response “blob”方法。在每种情况下,我都没有得到我的文件,或者我得到了一个损坏的版本。
攻击这个的最好方法是什么?