Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尝试上载使用HTML5文件API存储的文件_Javascript_Html_Html5 Filesystem - Fatal编程技术网

Javascript 尝试上载使用HTML5文件API存储的文件

Javascript 尝试上载使用HTML5文件API存储的文件,javascript,html,html5-filesystem,Javascript,Html,Html5 Filesystem,我正在整合来自web的教程,以便能够构建一个工具,用户可以将HTML5应用程序中的图像脱机上载到文件系统存储以及一些个人详细信息,当他们联机时,他们可以同步将文件及其详细信息上载到服务器 我已经成功地创建了一个简单的页面,将图像存储在文件存储中,并将其缩小,但我不知道如何使用XMLHttpRequest发布它们。我设法只推送文件数据,并使用php://input 从中获取,但我需要将其作为表单字段上载,我可以通过$\u文件检索 这一职能尤其是: function (fileName, succe

我正在整合来自web的教程,以便能够构建一个工具,用户可以将HTML5应用程序中的图像脱机上载到文件系统存储以及一些个人详细信息,当他们联机时,他们可以同步将文件及其详细信息上载到服务器

我已经成功地创建了一个简单的页面,将图像存储在文件存储中,并将其缩小,但我不知道如何使用XMLHttpRequest发布它们。我设法只推送文件数据,并使用php://input 从中获取,但我需要将其作为表单字段上载,我可以通过$\u文件检索

这一职能尤其是:

function (fileName, successFct) {
    getFileSystem(function (fileSystem) {
        var fd = new FormData();
        var xhr = new XMLHttpRequest();
        xhr.open('POST', 'upload.php', true);

        xhr.onload = function(e) {
            if (this.status == 200) {
                console.log(this.responseText);
            }
        };

        fileSystem.root.getFile(fileName, {}, function (fileEntry) {
            fileEntry.file(function(file) {
                fd.append('file' + i, file);
                fd.append('name' + i, 'name' + i);
            });

        }, errorFct);

        xhr.send(fd);
        }
    );
};
完整的代码可以看到@

在upload.php中,如果我执行以下操作

print_r($_FILES);
print_r($_POST);

它只显示了两个空数组

遇到类似的问题:我注意到您的代码有一点,您没有将内容类型头设置为多部分/表单数据


我还没有一个可用的示例,但我非常确定要使用FormData,您需要旧的多部分/表单数据魔法。

我最终使用了文件的base64并发布了它,但找不到解决方案。@MichaelM-我实际上得到了在较新的Android操作系统上工作的代码,因此多部分/表单中的二进制数据。但后来应用程序上线了,生产中使用的设备也比以前旧得多。长话短说——最终我也不得不回到base64编码的帖子,我尝试了一切……相信我。主要的问题是,Blob API(如果在较旧的操作系统上可用的话)无法满足需要。我发现这个网站非常有用: