如何上传iWork Pages 5.2文件



苹果改变了iWork文件管理方式。这些文件现在是一个包,内容很像它们的应用程序。我需要创建一个可以接收多个文件的上传表单。主要是图像,但也有一些页面和数字。删除的文件最多可达15个,并将使用PHP在服务器端进行排序。这是已经建成的。

我的问题是……

我怎么能得到页面文件上传?到目前为止,我已经尝试了很多预先构建的解决方案。

我也一直在从头开始构建。" datattransfer "不喜欢它,它说它是一个目录。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);

返回undefined并弹出以下错误"failed to load resource blob:http://localhost/<RANDOM BLOB STRING HERE>"

当我解码blob服务器端时,不出所料,我得到一个大小为0Kb的文件,所以它永远不会去。

我真的只想把所有的文件放到服务器上的一个文件夹里。我甚至不介意我必须为每个文件发送一个服务器请求,尽管这可能效率很低。

我也尝试过base64编码,再次得到类似的结果。我也尝试过XHR。也响应"blob"方法。在每种情况下,我没有得到我的文件或我得到一个损坏的版本。

解决这个问题的最好方法是什么?

。页面"文件"是一个包含文件的文件夹。OSX将它们显示为单个文件;其他系统可能会将它们视为文件夹。无论如何,其他系统可能无法打开它们,

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

老实说,最好的解决方案是避免使用. page。它并不是一种公认的格式,所以许多用户无论如何都无法打开它。页面可以转换为更容易识别的Word或RTF格式。

作为旁注,您可能需要非常小心地处理这样的文件(blob)。我没有看到任何东西阻止某人上传恶意PHP脚本或其他有害文件…

最新更新