位置: IT常识 - 正文

微信小程序 - 下载文件到本地、打开文档(微信小程序下单可以退款吗)

编辑:rootadmin
微信小程序 - 下载文件到本地、打开文档 前言

推荐整理分享微信小程序 - 下载文件到本地、打开文档(微信小程序下单可以退款吗),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:微信小程序下单可以退款吗,微信小程序下载,微信小程序下单被骗了钱能追回来吗?,微信小程序下载的文件在哪可以找到,微信小程序下载的文件在哪可以找到,微信小程序下单怎么做,微信小程序下单怎么做,微信小程序下单怎么弄商家,内容如对您有帮助,希望把文章链接给更多的朋友!

需求场景描述:接口获取到服务器的文件地址,然后在小程序中下载文件到本地手机上。根据文件格式,下载类型分为下面四种情况:

下载图片到本地下载视频到本地打开文档,支持格式:doc, xls, ppt, pdf, docx, xlsx, pptx下载音频到本地,以及其他格式文件实现下载图片到相册:saveImageToPhotosAlbum()下载视频到相册:saveVideoToPhotosAlbum()打开文档:openDocument()下载音频到本地:FileSystemManager文件管理器、替代方案。具体演示代码

1、下载图片到本地

onSavePic() { // #ifdef MP-WEIXIN uni.getImageInfo({ src: _this.imageUrl, // 图片下载网络地址 success: function(e) { // e.type=png/jpg 扩展名 // filePathNew: 指定文件下载后存储的路径 (本地路径) var filePathNew = wx.env.USER_DATA_PATH + "/" + new Date().valueOf() +'.'+e.type; uni.downloadFile({ url: _this.imageUrl, filePath: filePathNew, success: (res) => { if (res.statusCode === 200) { uni.saveImageToPhotosAlbum({ filePath: filePathNew, success: function() { uni.showToast({title: '保存到相册成功'}); }, fail: function(err){} }); } } }); }, complete: function(e) {} }); // #endif},

2、下载视频到本地

实现方法同下载图片,只不过保存视频需要使用saveVideoToPhotosAlbum()方法。

onSaveVideo() { // #ifdef MP-WEIXIN uni.downloadFile({ url: this.videoUrl, success: (data) => { if (data.statusCode === 200) { uni.saveFile({ tempFilePath: data.tempFilePath, //临时路径 success: function(res) { uni.saveVideoToPhotosAlbum({ filePath: res.savedFilePath, success:function(){ uni.hideLoading() uni.showToast({title:"保存到相册成功"}) } }) } }); } }, fail: (err) => { uni.showToast({title: '失败请重新下载'}); }, }); // #endif},

3、打开文档,支持格式:doc, xls, ppt, pdf, docx, xlsx, pptx

onOpenDocment() { uni.downloadFile({ url: this.fileUrl,// 网络文档地址 success: (data) => { if (data.statusCode === 200) { uni.saveFile({ tempFilePath: data.tempFilePath, //临时路径 success: function(res) { // 保存路径 uni.showToast({ title: "文件已保存:"+res.savedFilePath,duration:3000 }) setTimeout(()=>{ //打开文档查看 uni.openDocument({ filePath:res.savedFilePath, success:function(res){ console.log('打开文档成功') } }) }, 3000); } }); } }, fail: (err) => { uni.showToast({ title: '失败请重新下载' }); }, });},

4、下载音频。

因微信平台限制,除了视频、图片支持下载文件到本地,以及部分文档格式支持直接打开,其他格式的文件不支持下载文件到本地。

微信小程序官网中,提到可以使用FileSystemManager文件管理器下载音频等其他格式文件。

使用FileSystemManager文件管理器下载文件,

文件主要分为两大类:

代码包文件:代码包文件指的是在项目目录中添加的文件。本地文件:通过调用接口本地产生,或通过网络下载下来,存储到本地的文件。

其中本地文件又分为三种:

本地临时文件:临时产生,随时会被回收的文件。运行时最多存储 4GB,结束运行后,如果已使用超过 2GB,会以文件为维度按照最近使用时间从远到近进行清理至少于2GB。本地缓存文件:小程序通过接口把本地临时文件缓存后产生的文件,不能自定义目录和文件名。跟本地用户文件共计,小程序(含小游戏)最多可存储 200MB。本地用户文件:小程序通过接口把本地临时文件缓存后产生的文件,允许自定义目录和文件名。跟本地缓存文件共计,小程序(含小游戏)最多可存储 200MB。

本地用户文件:提供了一个用户文件目录给开发者,开发者对这个目录有完全自由的读写权限。通过 wx.env.USER_DATA_PATH 可以获取到这个目录的路径。解析到手机上的路径为,wxfile://usr/,真实路径:手机/内部存储/tencent/MicroMsg/wxanewfiles/xxxx/abc.mp3。

微信小程序 - 下载文件到本地、打开文档(微信小程序下单可以退款吗)

xxxx:是一个很长的由英文数字组成的文件夹,这个文件夹的明明规则,尚不清楚。所以保存后的文件具体在什么路径,并不知道。而且苹果手机,无法获取到微信内部的文件路径。因此这种方式pass。

要想实现下载音频的功能,就只能找替代方案。

方案1:下载文件保存为图片格式,保存成功后,更改扩展名。实现步骤如下:

①使用wx.downloadFile下载mp3文件后,使用FileSystemManager.save保存mp3文件为图片格式。

②保存成功后,再使用wx.saveImageToPhotosAlbum保存到相册,最后路径为:手机/内部存储/tencent/MicroMsg/WeiXin/mmexport1xxxxxx.jpg。1xxxxxx为时间戳,只能根据文件生成时间判断是哪个文件了。 

这种方式比较繁琐,对于用户不适用。pass

方案2:复制音频网络地址,打开系统浏览器,在浏览器中下载音频。亲测有效。

苹果手机:       ①、使用safari浏览器下载时,点击下方tab中的分享按钮,选择:‘存储到“文件”’选项,即可保存到手机的“文件”管理中。不支持重命名。       ②、使用QQ浏览器,只可以在浏览器中播放音频,无法下载音频。

安卓手机:       ①、浏览器中打开链接,可直接进行下载,并支持重命名。

复制网络地址到剪切板方法如下:

// 下载音频到本地onSaveAudio() { uniCopy({ content:this.audioUrl,// 音频下载链接 success:(res)=>{ uni.showToast({title: res}) }, error:(e)=>{ uni.showToast({title: e,}) } })},uniCopy({content,success,error}) { if(!content) return error('复制的内容不能为空 !') content = typeof content === 'string' ? content : content.toString() // 复制内容,必须字符串,数字需要转换为字符串 /** * 小程序端 和 app端的复制逻辑 */ //#ifndef H5 uni.setClipboardData({ data: content, success: function() {success("复制成功~")}, fail:function(){success("复制失败~")} }); //#endif /** * H5端的复制逻辑 */ // #ifdef H5 if (!document.queryCommandSupported('copy')) { //为了兼容有些浏览器 queryCommandSupported 的判断 // 不支持 error('浏览器不支持') } let textarea = document.createElement("textarea") textarea.value = content textarea.readOnly = "readOnly" document.body.appendChild(textarea) textarea.select() // 选择对象 textarea.setSelectionRange(0, content.length) //核心 let result = document.execCommand("copy") // 执行浏览器复制命令 if(result){ success("复制成功~") }else{ error("复制失败,请检查h5中调用该方法的方式,是不是用户点击的方式调用的,如果不是请改为用户点击的方式触发该方法,因为h5中安全性,不能js直接调用!") } textarea.remove() // #endif},

5、下载其他格式文件。与下载音频类似,具体有时间再补充。

注意:

下载资源的地址,下载之前必须设置微信公众平台开发设置中的服务器域名的downloadFile合法域名。资源地址必须来自合法域名才可以请求。

PS:图片、视频保存到相册需要获取权限方可保存,获取权限流程

PS:保存图片到相册出现*.unknown错误及saveImageToPhotosAlbum:fail invalid file type错误

本文链接地址:https://www.jiuchutong.com/zhishi/283839.html 转载请保留说明!

上一篇:最高像素的镜头是什么(最高像素的镜头是多少)

下一篇:白鹤芋的养殖方法与注意事项(白鹤芋的养殖方法和注意事项)

  • vivoY77怎么反向充电(vivos7e怎么反向充电)

    vivoY77怎么反向充电(vivos7e怎么反向充电)

  • 支付宝注销了能再注册吗(支付宝注销了能查到账单吗)

    支付宝注销了能再注册吗(支付宝注销了能查到账单吗)

  • 怎么把微信视频号关闭(怎么把微信视频号的视频保存到手机)

    怎么把微信视频号关闭(怎么把微信视频号的视频保存到手机)

  • 变频器0c1怎么处理(变频器故障0c1怎么修复)

    变频器0c1怎么处理(变频器故障0c1怎么修复)

  • iphone6s主板漏电特征(iphone6s主板漏电常见问题)

    iphone6s主板漏电特征(iphone6s主板漏电常见问题)

  • 毒app签名认证失败什么意思(毒实名认证没反应)

    毒app签名认证失败什么意思(毒实名认证没反应)

  • 拼多多货到了会提示吗(拼多多货到了会有短信提醒吗)

    拼多多货到了会提示吗(拼多多货到了会有短信提醒吗)

  • 抖音私信已读是什么意思(抖音私信已读是对方点开视频了吗)

    抖音私信已读是什么意思(抖音私信已读是对方点开视频了吗)

  • 微博移除粉丝对方知道吗(微博移除粉丝对号有影响吗)

    微博移除粉丝对方知道吗(微博移除粉丝对号有影响吗)

  • 怎么下载网页中的视频(怎么下载网页中的文件)

    怎么下载网页中的视频(怎么下载网页中的文件)

  • 华为手机是什么系统(华为手机是什么版本)

    华为手机是什么系统(华为手机是什么版本)

  • 手机漂浮球怎么关闭(手机漂浮球怎么弄)

    手机漂浮球怎么关闭(手机漂浮球怎么弄)

  • 手机无线网密码忘了怎么办(手机无线网密码怎么显示出来)

    手机无线网密码忘了怎么办(手机无线网密码怎么显示出来)

  • 淘宝发的红包能退回吗(淘宝发的红包能追回吗)

    淘宝发的红包能退回吗(淘宝发的红包能追回吗)

  • 华为q2和q2pro有什么区别(华为q2pro q2s对比)

    华为q2和q2pro有什么区别(华为q2pro q2s对比)

  • 趣头条注销后会扣钱吗(头条注销后内容还会在吗)

    趣头条注销后会扣钱吗(头条注销后内容还会在吗)

  • 怎样用ps将照片改为5M(怎样用ps将照片背景换成白色的)

    怎样用ps将照片改为5M(怎样用ps将照片背景换成白色的)

  • spss怎么用(spss怎么用卡方检验)

    spss怎么用(spss怎么用卡方检验)

  • 苹果手机趣头条为什么没有任务(苹果手机趣头条怎么没有金币)

    苹果手机趣头条为什么没有任务(苹果手机趣头条怎么没有金币)

  • 苹果手机螺丝滑丝了怎么办(苹果手机螺丝滑丝了怎么取出来图解)

    苹果手机螺丝滑丝了怎么办(苹果手机螺丝滑丝了怎么取出来图解)

  • matlab中hold on是什么意思(matlab中 hold on 与hold off的用法)

    matlab中hold on是什么意思(matlab中 hold on 与hold off的用法)

  • Win7系统使用中,系统磁盘开启保护功能怎么办?(win7使用小技巧)

    Win7系统使用中,系统磁盘开启保护功能怎么办?(win7使用小技巧)

  • 一只停在树枝上的仓鸮 (© blickwinkel/Alamy)(树枝上停着一只什么小鸟)

    一只停在树枝上的仓鸮 (© blickwinkel/Alamy)(树枝上停着一只什么小鸟)

  • vue3指导教程(附带获取屏幕可视区域宽高)(vue3.0教程)

    vue3指导教程(附带获取屏幕可视区域宽高)(vue3.0教程)

  • Vue3通透教程【一】Vue3现状—必然趋势?

    Vue3通透教程【一】Vue3现状—必然趋势?

  • python缺失值的解决方法

    python缺失值的解决方法

  • Python的监控功能示例(python监控模块)

    Python的监控功能示例(python监控模块)

  • c语言中realloc函数是什么(c语言realloc函数的用法)

    c语言中realloc函数是什么(c语言realloc函数的用法)

  • 企业所得税的纳税人发生年度亏损的时间
  • 税后净利润是什么意思
  • 无偿使用场地涉及的问题
  • 季度不超过30万是含税还是不含税
  • 增票普票税额是否可以抵扣吗
  • 商贸公司运输发票怎么开
  • 纳税人采取预收的措施
  • 销项税额计算公式13%
  • 未交增值税金额公式
  • 收到利息计入哪个会计科目
  • 销售旧货时的售后是什么
  • 免税农产品转出进项税税率
  • 税务局即征即退自查报告
  • 个人独资所得税税率表最新
  • 不付供应商尾款了怎么清账
  • 2017小规模纳税人标准
  • 轨道交通很高兴 土地税优惠来了
  • 新购进的固定资产可以一次性抵扣
  • 原材料增值税怎么算
  • 使用专项资金购买的固定资产 需要取得发票吗
  • 委托贷款合同效力
  • 委托加工物资是一级科目吗
  • 银行手续费会开发票吗
  • 结转成本,成本多了还是少了
  • php中const
  • Linux怎么使用vi
  • 教育培训费能抵扣吗
  • 总公司拨给分公司款需要交税吗
  • 核定征收的小规模纳税人要做账吗
  • 最小的的照片
  • 固定资产减值损失属于什么科目
  • 长期股权投资采用权益法核算
  • php 构造方法
  • 提交表单后重定向
  • 控制器eabs
  • 增值税发票已经认证了,但是税票原票没给,会有什么后果
  • 商业积分消费模式
  • 利润表本年累计金额和本期金额有什么区别
  • 回扣,折扣和佣金都具有违法性对吗
  • 企业接受捐赠资产属于什么科目
  • 出口货物不能退税的账务处理
  • 票据粘贴顺序是什么
  • 支付运费的会计怎么记录运输费
  • 企业所得税表利润总额是净利润吗
  • 信用减值损失如何列报
  • 收到政府补贴如何入账
  • 一个公户从农业银行开户
  • 托收承付方式销售商品是什么意思
  • 公司社保外包了,没给我社保卡怎么办?
  • 销售折扣销售方会计处理
  • 土地使用权属于无形资产吗
  • 融资租入固定资产的账务处理
  • 一般纳税人月销售额10万以下
  • 预付款项给供应商合法吗
  • 新公司建账初始数据可以全部为零吗
  • 新成立公司年初余额
  • 行转列sql函数
  • SQL入侵恢复xp_cmdshell方法总结
  • win7系统管理在哪里
  • windows7命名规则
  • mac设置在哪里设置
  • 怎么降到windows7
  • win10画图功能
  • win7 64位旗舰版电脑鼠标如何才能设置成左手操作?设置鼠标为左手操作的方法
  • win7电脑c盘格式化
  • c#封装数据库
  • nginx日志路径配置
  • node.js开发实战
  • nodejs image
  • jquery 输入框输入完触发事件
  • 八大排序算法的时间空间复杂度
  • javascript设计简单计算机
  • js基于什么
  • jquery轮播图原理
  • 深圳电子税务局怎么查以前申报表
  • 民办幼儿园属于民营企业吗
  • 哈尔滨出租车可以拼车吗
  • 关于出口退税的问题
  • 如何查询甘肃省清产核资系统扶贫项目资产金额
  • 税务申报网上申报
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设