Chrome 有一个我正在使用的非常有用的文件系统 API。我想要做的是将存储在其中的文件上传到服务器。不幸的是,似乎可以将文件发送到服务器的唯一方法是提交一个表单,在该表单中,由于某些安全问题,用户明确选择要上传的文件。
任何帮助将非常感激。
彼得
所以我有这个想法。为什么不使用 FileReader 将 blob 转换为字符串,然后在请求正文中发送呢?
//entries[] contains a set of file objects
function readerSuccess(entries) {
var i;
for (i=0; i<entries.length; i++)
{
if(entries[i].isFile === true)
{
data=new FormData();
data.append('name',entries[i].fullPath);
//Conversion...
entries[i].file(function(file) {
var reader = new FileReader();
reader.onloadend = function(e) {
var dataStr=this.result;
};
reader.readAsText(file);
}, errorHandler);
//Sending...
data.append('file',dataStr);
var oReq = new XMLHttpRequest();
oReq.open("POST", "serv.php", true);
oReq.send(data);
}
else if (entries[i].isDirectory === true)
{
getDirSuccess(entries[i]);
}
}
}
问题是它现在将 blob 作为单独的消息发送。例如:请求 URL:blob:http%3A//localhost/7492a164-ed62-4834-939c-e6437b52cba8 请求方法:GET 状态码:200 OK (from cache)