博客 / 詳情

返回

uniapp微信小程序文件下載-自定義文件名

在微信小程序端是無法直接下載文件的,對於docx、excel、pdf等文件都是通過臨時緩存+打開的方式保存到本地

默認下載

const openFile = (url,fileType) => {
    uni.downloadFile({
        url: url,
        success: function (res) {
            let filePath = res.tempFilePath;
            uni.openDocument({
                filePath: filePath,
                fileType,
                showMenu: true,
                success: function (res) {
                    console.log('打開文檔成功', res);
                },
                fail: function (err) {
                    console.log('打開失敗', err);
                }
            });
        }
    });
};

通過 url + 文件類型 即可實現文件打開和下在,這種方式下載的文件名是微信自動生成的一串字符。

自定義文件名下載

直接調用下面這個函數即可,傳入url、文件類型、文件名稱

/**
 * 文件打開和下載
 * @param {string} url 文件下載鏈接
 * @param {string} fileType 文件類型
 * @param {string} fileName 文件名稱
 */
export const openFile = (url, fileType, fileName) => {
  // 下載到臨時地址
    uni.downloadFile({
        url,
        filePath:`${uni.env.USER_DATA_PATH}/${fileName}`, // 自定義文件名
        success: function (res) {
            let filePath = res.filePath; // 自定義filePath後,filePath為臨時地址路徑
      // 打開文件
            uni.openDocument({
                filePath: filePath,
                fileType, // 文件類型
                showMenu: true,
                success: function (res) {
                    console.log('打開文檔成功', res);
                },
                fail: function (err) {
                    console.log('打開失敗', err);
                }
            });
        }
    });
};

調用

openFile(url.value, 'pdf', `自定義名稱`);

uni.env.USER_DATA_PATH是固定值,代表用户文件目錄
通過這種方式可以自定義文件名,打開文件後,點擊右上角可轉發好友或保存到本地


參考文檔:
uni.downloadFile
uni.openDocument
本地用户文件
uni.env.USER_DATA_PATH

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.