uniapp如何下载文件,并将文件重命名

uni.showLoading({
  title: '下载中'
})

uni.downloadFile({
  url: "https://192.168.110.225/1.xls",
  success: (downloadResult) => {
    console.log("downloadResult", downloadResult)
    if (downloadResult.statusCode === 200) {
      // 保存文件
      uni.saveFile({
        tempFilePath: downloadResult.tempFilePath,
        success: (saveResult) => {
          uni.hideLoading();
          console.log('文件保存成功,保存路径:', saveResult.savedFilePath);
          const oldFilePath = saveResult.savedFilePath;
          const fileExtension = oldFilePath.split('.').pop();

          // 创建一个Date对象
          const now = new Date();

          // 获取当前的年、月、日
          const year = now.getFullYear();
          const month = now.getMonth() + 1; // 月份是从0开始的,需要加1
          const date = now.getDate();

          const hours = now.getHours().toString().padStart(2, '0');
          const minutes = now.getMinutes().toString().padStart(2, '0');
          const seconds = now.getSeconds().toString().padStart(2, '0');

          const newFileName = year + "-" + month + "-" + date + " " + hours + ":" + minutes + ":" + seconds + '_结果.xls'; //
          新的文件名
          const newFilePath = oldFilePath.replace(/[^\/]*$/, newFileName);

          uni.showToast({
            icon: 'none',
            mask: true,
            title: `文件已保存`, //保存路径
            duration: 3000,
          });
          console.log("newFilePath", oldFilePath, newFilePath)
          // 修改文件名
          plus.io.resolveLocalFileSystemURL(oldFilePath, entry => {
            entry.getParent(_oldFile => {
              entry.moveTo(_oldFile, '/' + newFileName, newFilePath => {
                console.log('newFilePath', newFilePath.fullPath)
              })
            })
          })
        },
        fail: (saveError) => {
          console.error('文件保存失败:', saveError);
        }
      });
    } else {
      console.error('文件下载失败,状态码:', downloadResult.statusCode);
    }
  },
  fail: (downloadError) => {
    console.error('文件下载失败:', downloadError);
  }
});

### 实现基于当前日期命名文件下载UniApp 中实现根据当前日期来命名所下载文件,主要分为两部分工作:一是获取当前系统的日期;二是利用该日期作为文件名称的一部分来进行保存操作。 对于获取当前时间,在 JavaScript 可以通过 `new Date()` 来创建一个新的日期对象,调用其方法如 `.toISOString()`, 或者格式化成特定样式的字符串以便于后续处理[^1]。为了确保兼容性和易读性,通常会采用 YYYY-MM-DD 这样的标准格式表示法。 当准备好了想要使用的文件名之后,则可以借助 uni.downloadFile API 下载网络资源到本地存储空间内。此接口允许指定目标路径以及自定义文件的名字。下面给出一段具体的代码实例展示整个流程: ```javascript // 获取今天的日期用于构建文件名 function getTodayDate(){ const today = new Date(); let day = ("0" + String(today.getDate())).slice(-2); let month = ("0" + String(today.getMonth() + 1)).slice(-2); // 注意月份是从零开始计数的 let year = today.getFullYear(); return `${year}-${month}-${day}`; } export function downloadFileWithCurrentDate(url){ var fileName = getTodayDate(); uni.downloadFile({ url: url, filePath: `${uni.env.USER_DATA_PATH}/${fileName}.ext`, // 替换成实际扩展名 .pdf|.jpg|etc. success:(res)=>{ console.log('Download Success', res.tempFilePath); }, fail(err){ console.error('Failed to Download File:', err); } }); } ``` 上述函数中包含了两个重要组件:`getTodayDate` 函数负责生成形如 'YYYY-MM-DD' 的字符串形式的今天日期;而 `downloadFileWithCurrentDate` 接受一个远程 URL 参数,它将尝试从给定位置拉取数据流至移动设备上的私有目录下,按照之前提到的方式重命名为带有当天日期前缀的新文档[^2]。 请注意替换模板中的`.ext`为适合您要下载的内容类型的适当文件扩展名(例如.pdf,.docx等),且确认URL指向有效的在线资源链接。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿凤21

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值