尝试上传使用HTML 5 File API存储的文件

时间:2015-02-18 12:32:30

标签: javascript html5 html5-filesystem

我正在拼凑网上的教程,以便能够构建一个工具,用户可以在HTML5应用程序中将图像离线上传到文件系统存储以及一些个人详细信息,当他们在线时,他们可以“同步”上传的内容文件及其详细信息到服务器。

我设法得到一个简单的页面,将图像存储在文件存储和放大器中。将它们缩小,但我无法弄清楚如何使用XMLHttpRequest发布它们。我已经成功推送文件数据并使用php:// input(取自Upload file from HTML5 Filesystem by XMLHttpRequest)逐个存储它但我需要将其作为表单字段上传,我可以通过$ _FILES检索。

特别是这个功能:

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);
        }
    );
};

可以看到完整代码@ http://pastebin.com/W0x9q6YH

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

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

它只显示两个空数组。

1 个答案:

答案 0 :(得分:0)

遇到类似的问题:我注意到有关您的代码的一件事,您没有将Content-Type标题设置为multipart/form-data

我还没有工作样本,但我很确定使用FormData,你需要那个旧的multipart/form-data魔法。