|
@@ -1,6 +1,6 @@
|
|
|
<template>
|
|
|
<view>
|
|
|
- <web-view src="http://61.177.40.178:8001" @message="handleMessage"></web-view>
|
|
|
+ <web-view src="http://61.177.40.178:8000" @message="handleMessage"></web-view>
|
|
|
<!-- <button @click="downloadFile">点击下载文件</button> -->
|
|
|
</view>
|
|
|
</template>
|
|
@@ -29,7 +29,7 @@
|
|
|
// this.downloadFile();
|
|
|
},
|
|
|
methods: {
|
|
|
-
|
|
|
+
|
|
|
handleMessage(evt) {
|
|
|
console.log('原始信息:' + evt)
|
|
|
console.log('接收到的消息:' + JSON.stringify(evt));
|
|
@@ -51,12 +51,29 @@
|
|
|
});
|
|
|
} else if (data && data.type && data.type == 'file' && data.url && data.url != '' && data.fileName &&
|
|
|
data.fileName != '' && data.token && data.token != '') {
|
|
|
- console.log("移动端文件下载通用方式")
|
|
|
+ //判断是否为POST请求
|
|
|
+ let isPost = false;
|
|
|
+ try {
|
|
|
+ let urlType = data.urlType;
|
|
|
+ let postRequest = data.postRequest;
|
|
|
+ if (urlType == 'POST') {
|
|
|
+ isPost = true;
|
|
|
+ }
|
|
|
+ } catch (e) {
|
|
|
+ isPost = false;
|
|
|
+ }
|
|
|
+
|
|
|
let url = data.url;
|
|
|
let fileName = data.fileName;
|
|
|
let token = data.token;
|
|
|
- console.log('url:' + url);
|
|
|
- this.downloadFile(url, fileName, token);
|
|
|
+ if (!isPost) {
|
|
|
+ console.log("移动端文件下载通用方式")
|
|
|
+ console.log('url:' + url);
|
|
|
+ this.downloadFile(url, fileName, token);
|
|
|
+ } else {
|
|
|
+ let postRequest = data.postRequest;
|
|
|
+ this.downloadPostFile(url, fileName, token, postRequest)
|
|
|
+ }
|
|
|
} else {
|
|
|
return;
|
|
|
}
|
|
@@ -84,21 +101,7 @@
|
|
|
// });
|
|
|
// },
|
|
|
downloadFile(_url, _name, _token) {
|
|
|
- // let timestamp=Date.now()
|
|
|
- // let URL=`${_url}?timestamp=${timestamp}`
|
|
|
- // uni.getSavedFileList({
|
|
|
- // success:function(res){
|
|
|
- // console.log('4545',res);
|
|
|
- // if(res.fileList.length>0){
|
|
|
- // // res.fileList=[];
|
|
|
- // console.log('77845',res);
|
|
|
- // uni.removeSavedFile({
|
|
|
- // filePath:res.fileList[0].filePath
|
|
|
- // });
|
|
|
- // }
|
|
|
- // }
|
|
|
- // })
|
|
|
-
|
|
|
+
|
|
|
uni.downloadFile({
|
|
|
url: _url, //文件链接
|
|
|
header: {
|
|
@@ -112,24 +115,25 @@
|
|
|
success: function(res) {
|
|
|
var savedFilePath = res.savedFilePath;
|
|
|
let lastSlashIndex = savedFilePath.lastIndexOf("/");
|
|
|
- let name_index=_name.lastIndexOf('.');
|
|
|
- let fileName=_name.slice(0,name_index)+Date.now()+_name.slice(name_index,_name.length)
|
|
|
+ let name_index = _name.lastIndexOf('.');
|
|
|
+ let fileName = _name.slice(0, name_index) + Date.now() + _name
|
|
|
+ .slice(name_index, _name.length)
|
|
|
var newFilePath = savedFilePath.slice(0, lastSlashIndex + 1) +
|
|
|
fileName;
|
|
|
console.log("download:" + savedFilePath)
|
|
|
console.log('修改之后的文件路径:' + newFilePath)
|
|
|
//修改名称
|
|
|
-
|
|
|
+
|
|
|
plus.io.resolveLocalFileSystemURL(savedFilePath, entry => {
|
|
|
entry.getParent(_oldFile => {
|
|
|
- entry.moveTo(_oldFile, '/' + fileName ,
|
|
|
+ entry.moveTo(_oldFile, '/' + fileName,
|
|
|
newFilePath => {
|
|
|
console.log('文件名称替换完成');
|
|
|
- // console.log('000',newFilePath.fullPath);
|
|
|
+ console.log('000',newFilePath.fullPath);
|
|
|
})
|
|
|
- })
|
|
|
+ })
|
|
|
})
|
|
|
- setTimeout(()=>{
|
|
|
+ setTimeout(() => {
|
|
|
uni.openDocument({
|
|
|
filePath: newFilePath,
|
|
|
success() {
|
|
@@ -138,8 +142,8 @@
|
|
|
fail() {
|
|
|
console.log('打开失败');
|
|
|
}
|
|
|
- });
|
|
|
- },1000)
|
|
|
+ });
|
|
|
+ }, 1000)
|
|
|
}
|
|
|
});
|
|
|
}
|
|
@@ -153,6 +157,35 @@
|
|
|
},
|
|
|
})
|
|
|
},
|
|
|
+ downloadPostFile(_url, _name, _token, _data) {
|
|
|
+ let name_index = _name.lastIndexOf('.');
|
|
|
+ let fileName = "_doc/uniapp_save/"+ _name.slice(0, name_index) + Date.now() + _name
|
|
|
+ .slice(name_index, _name.length);
|
|
|
+ console.log('文件路径:'+fileName)
|
|
|
+
|
|
|
+ var dtask = plus.downloader.createDownload(_url, {
|
|
|
+ filename: fileName, //利用保存路径,实现下载文件的重命名
|
|
|
+ method: 'POST',
|
|
|
+ data: _data
|
|
|
+ }, function(d, status) {
|
|
|
+ console.log("d====>", d)
|
|
|
+ console.log("status====>", status)
|
|
|
+ //d为下载的文件对象
|
|
|
+ if (status == 200) {
|
|
|
+ // var fileSaveUrl = plus.io.convertLocalFileSystemURL(d.filename);
|
|
|
+ plus.runtime.openFile(d.filename); //选择软件打开文件
|
|
|
+ } else {
|
|
|
+ //下载失败
|
|
|
+ plus.downloader.clear(); //清除下载任务
|
|
|
+ reject({data:d,status})
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+ dtask.setRequestHeader("token", _token)
|
|
|
+ dtask.setRequestHeader("Content-Type", "application/json")
|
|
|
+ dtask.start(); //执行下载
|
|
|
+
|
|
|
+ },
|
|
|
|
|
|
}
|
|
|
}
|