我正在拼凑网上的教程,以便能够构建一个工具,用户可以在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);
它只显示两个空数组。
答案 0 :(得分:0)
遇到类似的问题:我注意到有关您的代码的一件事,您没有将Content-Type
标题设置为multipart/form-data
。
我还没有工作样本,但我很确定使用FormData,你需要那个旧的multipart/form-data
魔法。