所以 - 我一直在使用这种文件上传方法,但似乎Google Gears对实现HTML5规范的新浏览器支持不足。我听说过几个频道上的 deprecated 这个词,所以我正在寻找能够完成以下任务并支持新浏览器的替代品。我总是可以回到齿轮/标准文件POST,但这些以下项目使我的过程更加简单:
PUT
次请求代替POST
<button>
点击时触发文件选择。我不确定新的HTML5浏览器是否支持桌面/请求对象齿轮使用,或者是否有一个闪存上传器具有我在谷歌搜索中缺少的这些功能。
使用齿轮上传代码的示例:
// select some files:
var desktop = google.gears.factory.create('beta.desktop');
desktop.openFiles(selectFilesCallback);
function selectFilesCallback(files) {
$.each(files,function(k,file) {
// this code actually goes through a queue, and creates some status bars
// but it is unimportant to show here...
sendFile(file);
});
}
function sendFile(file) {
google.gears.factory.create('beta.httprequest');
request.open('PUT', upl.url);
request.setRequestHeader('filename', file.name);
request.upload.onprogress = function(e) {
// gives me % status updates... allows e.loaded/e.total
};
request.onreadystatechange = function() {
if (request.readyState == 4) {
// completed the upload!
}
};
request.send(file.blob);
return request;
}
编辑:显然flash无法使用PUT请求,因此我将其更改为“喜欢”而不是“必须”。
答案 0 :(得分:1)
我之前使用过基于Flash的内容,例如http://www.webresourcesdepot.com/open-source-flash-uploader-multi-bit-shift/。它们工作正常,只依赖闪存应该适用于大多数计算机。我没有找到一种可靠的方法来单独使用js,但可以用js控制flash - 特别是如果你自己编写。
希望这会有所帮助。
答案 1 :(得分:1)
(根据原始问题的评论,根据艾克斯的建议产生。)
Plupload是该块中最新的孩子之一,它使用了最好的方法(HTML 5,Flash,Gears,Silverlight):http://plupload.com/