/联网下载图片,并设置给<img>/
function setImgFromNet(loadUrl, relativePath) {
//创建下载任务
var wgtOption = {
filename: relativePath,
retry: 1
};
var watiting = plus.nativeUI.showWaiting("开始下载:0%");
var dtask = plus.downloader.createDownload(loadUrl, wgtOption, function(d, status) {
if(status == 200) {
//下载成功
// console.log("下载成功=" + relativePath);
// setImgFromLocal(relativePath);
} else {
// mui.toast('下载失败');
// //下载失败,需删除本地临时文件,否则下次进来时会检查到图片已存在
// console.log("下载失败=" + status + "==" + relativePath);
// //dtask.abort();//文档描述:取消下载,删除临时文件;(但经测试临时文件没有删除,故使用delFile()方法删除);
// if(relativePath != null)
// delFile(relativePath);
}
});
var fileTotalSize=0;
dtask.addEventListener("statechanged", function(task, status) {
if(!dtask) {
return;
}
console.log("status===="+status+"====dtask.totalSize===="+dtask.totalSize);
switch(task.state) {
case 1:
fileTotalSize=dtask.totalSize;
// 开始
watiting.setTitle("开始下载");
break;
case 2:
watiting.setTitle("已连接到服务器");
// 已连接到服务器
break;
case 3:
// 已接收到数据
console.log("task.downloadedSize="+task.downloadedSize+"==fileTotalSize=="+fileTotalSize);
var nowData = (task.downloadedSize/fileTotalSize)*100;
console.log(nowData);
if(nowData % 10 === 0) {
watiting.setTitle("已下载:" + nowData + "%");
if(nowData === 100) {
console.log("下载成功改版=" + dtask.filename);
plus.nativeUI.toast("正在准备打开,请稍后!");
setImgFromLocal(dtask.filename);
watiting.close();
}
}
break;
case 4:
// 下载完成
break;
}
}, false);
//启动下载任务
dtask.start();
}
为什么totalSize都是0呢?500多kb的文件, 获取不到文件的总大小
1 个回复
1***@qq.com - 95后it男
你好 请问解决了吗 我也遇到了这个问题