gpt4 book ai didi

javascript - 如何上传 iWork Pages 5.2 文件。

转载 作者:行者123 更新时间:2023-11-28 08:07:11 26 4
gpt4 key购买 nike

Apple 改变了管理 iWork 文件的方式。这些文件现在是一个 bundle ,其内容非常类似于它们的应用程序。我需要创建一个可以接收多个文件的上传表单。主要是图像,但也有一些页面和数字。删除的文件最多可以有 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”方法。在每种情况下,我都没有收到我的文件,或者收到损坏的版本。

攻击这个问题的最佳方法是什么?

最佳答案

.Pages"file"是包含文件的文件夹。 OSX 会将它们显示为单个文件;其他系统可能会将它们视为文件夹。不管怎样,其他系统可能无法打开它们,

几年前,我在尝试将它们加载到版本控制系统中时遇到了这个问题。我发现的最佳解决方法是压缩文件并对其进行版本控制。不太好,但确实有效。

老实说,最好的解决方案是避免 .Pages。它并不是一种很好识别的格式,因此用户可能无法打开它。页面可以转换为更容易识别的 Word 或 RTF 格式。

顺便说一句,您可能需要非常小心地处理此类文件(blob)。我没有看到任何阻止某人上传恶意 PHP 脚本或其他有害文件的方法...

关于javascript - 如何上传 iWork Pages 5.2 文件。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24680108/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com