从Google Chrome文件系统上传文件到服务器
Upload a File from the Google Chrome File System to a Server
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]);
}
}
}
问题是现在它将blobs作为单独的消息发送。例如:请求URL: blob: http % 3//localhost/7492 a164 - ed62 - 4834 - 939 - c - e6437b52cba8请求方法:状态码:200 OK (from cache)
我不完全确定您为什么在这里使用FileReader。只需将每个Blob/File附加到FormData对象并发送它:
var data = new FormData();
if(entries[i].isFile)
{
data.append('file' + i , entries[i]);
}
var oReq = new XMLHttpRequest();
oReq.open("POST", "serv.php", true);
oReq.send(data);
相关文章:
- jQuery blueimp文件上传:将N-1个文件上传到IE中的服务器
- 将JQuery Handontable保存到服务器上的excel文件中
- 正在使用Dropzone.js删除服务器上已重命名的文件
- Angular JS文件上传到托管服务器
- 从安卓设备将图像上传到服务器时,文件扩展名错误
- node.js将字符串转换为要上传到Web服务器的文件
- 在浏览器中打开文本文件-服务器上出现错误
- 如何从 Node.js 访问、检索、存储和删除文件到远程文件服务器中
- 从文件服务器读取 XML 文件
- 如何从文件服务器下载文件
- 如何使用JQUERY使用AJAX将Javascript变量(从客户端)发布到PHP文件(服务器端)
- 学习node文件服务器为什么将createReadStream()放入createServer()中
- NodeJs中的静态HTTP文件服务器:有时外部.js和.css文件加载正常,有时加载不正常;t
- 使用ExpressJS保护静态文件服务器
- 如何将json对象保存为文件服务器端
- 学习younode教程#11 HTTP文件服务器
- 仅由文件服务器支持的浏览器应用程序中的数据
- http.文件服务器响应的mime "Content-Type"错误
- 在dropzone.js中分配文件服务器id
- 通过JavaScript上传文件:服务器上的文件无效