微信小程序学习笔记之文件上传、下载操作图文详解


Posted in Javascript onMarch 29, 2019

本文实例讲述了微信小程序学习笔记之文件上传、下载操作。分享给大家供大家参考,具体如下:

前面介绍了微信小程序登录API与获取用户信息操作。这里再来介绍一下文件的上传与下载操作。

【文件上传】wx.uploadFile

(以上传图片为例)

后台上传接口Upload.php:(tp5)

<?php
namespace app\home\controller;
use think\Controller;
class Upload extends First
{
  //上传图片API
  public function upImg() {
  	$arr = array('state'=>0,'msg'=>'上传失败','filepath'=>'');
    $file = request()->file('file');
    if($file){
      $info = $file->move('upload/weixin/');
      if ($info) {
        $arr['state'] = 1;
        $arr['msg'] = '上传成功';
        $arr['filepath'] = $info->getSaveName();
      }
    }
    return json($arr);
  }
}

前台页面upload.wxml:

<image src='{{imgpath}}' style='width:600rpx; height:600rpx' />
<view>
 <button bindtap="upImg">点击选择上传图</button>
</view>

前台upload.js:

Page({
 data: {
  imgpath: ''
 },
 upImg: function (e) {
  var that = this
  wx.chooseImage({
   count: 1, // 默认最多一次上传9张图片
   sizeType: ['original', 'compressed'], // 允许原图和压缩图
   sourceType: ['album', 'camera'], // 允许相册和相机
   success(res) {
    const tempFilePaths = res.tempFilePaths
    wx.showToast({
     title: '正在上传...',
     icon: 'loading',
     mask: true,
     duration: 500
    })
    wx.uploadFile({
     url: 'https://www.msllws.top/Upload/upImg', //服务器上传接口
     filePath: tempFilePaths[0], //文件资源路径
     name: 'file',
     header: {
      'Content-Type': 'Application/json'
     },
     success(res) {
      console.log(res)
      if (res.statusCode == 200){
       that.setData({
        imgpath: tempFilePaths
       }) 
      }
     }
    })
   }
  })
 }
})

演示效果:

微信小程序学习笔记之文件上传、下载操作图文详解

(其实是有正在上传...效果的,手机录屏没给录上。。)

微信小程序学习笔记之文件上传、下载操作图文详解

微信小程序学习笔记之文件上传、下载操作图文详解 
查看服务器里面多了一张图片:

微信小程序学习笔记之文件上传、下载操作图文详解

嗯哼~

微信小程序学习笔记之文件上传、下载操作图文详解

 【文件下载】wx.downloadFile

(以下载一张图片为例)

在服务器目录下放一张图片1.jpg:

微信小程序学习笔记之文件上传、下载操作图文详解

微信小程序学习笔记之文件上传、下载操作图文详解

download.wxml:

<image src='{{imgpath}}' style='width:600rpx; height:600rpx' />
<view>
 <button bindtap="download">点击下载</button>
</view>

download.js:

Page({
 data: {
  imgpath: ''
 },
 download: function (e) {
  var that = this
  wx.showToast({
   title: '正在下载...',
   icon: 'loading',
   mask: true,
   duration: 500
  })
  wx.downloadFile({
   url: 'https://www.msllws.top/upload/1.jpg', //下载地址 
   type: 'image', //下载的资源类型(imnage/audio/video)
   success: function (res) {
    console.log(res)
    if (res.statusCode == 200) {
     var filepath = res.tempFilePath
     that.setData({
      imgpath: filepath
     })
    }
   }
  })
 }
})

演示效果:

微信小程序学习笔记之文件上传、下载操作图文详解

微信小程序学习笔记之文件上传、下载操作图文详解 微信小程序学习笔记之文件上传、下载操作图文详解

希望本文所述对大家微信小程序开发有所帮助。

Javascript 相关文章推荐
js操作iframe兼容各种主流浏览器示例代码
Jul 22 Javascript
js控制表单操作的常用代码小结
Aug 15 Javascript
IE与FireFox的JavaScript兼容问题解决办法
Dec 31 Javascript
Javascript实现前端简单的路由实例
Sep 11 Javascript
详解VueJs前后端分离跨域问题
May 24 Javascript
react native带索引的城市列表组件的实例代码
Aug 08 Javascript
js中的闭包学习心得
Feb 06 Javascript
js中如何完美的解析数据
Mar 18 Javascript
详解在vue-cli项目下简单使用mockjs模拟数据
Oct 19 Javascript
vue实现codemirror代码编辑器中的SQL代码格式化功能
Aug 27 Javascript
vue之延时刷新实例
Nov 14 Javascript
JS实现烟花爆炸效果
Mar 10 Javascript
微信小程序生成二维码的示例代码
Mar 29 #Javascript
微信小程序学习笔记之登录API与获取用户信息操作图文详解
Mar 29 #Javascript
JavaScript实现无限级递归树的示例代码
Mar 29 #Javascript
使用weixin-java-miniapp配置进行单个小程序的配置详解
Mar 29 #Javascript
详解a标签添加onclick事件的几种方式
Mar 29 #Javascript
node(koa2) web应用模块介绍详解
Mar 29 #Javascript
Vue js 的生命周期(看了就懂)(推荐)
Mar 29 #Javascript
You might like
php zlib压缩和解压缩swf文件的代码
2008/12/30 PHP
使用array mutisort 实现按某字段对数据排序
2013/06/18 PHP
让你的PHP,APACHE,NGINX支持大文件上传
2021/03/09 PHP
js制作的鼠标悬浮时产生的下拉框效果
2012/10/27 Javascript
js如何实现设计模式中的模板方法
2013/07/23 Javascript
js在输入框屏蔽按键,只能键入数字的示例代码
2014/01/03 Javascript
Javascript实现简单的富文本编辑器附演示
2014/06/16 Javascript
node.js中的fs.chmod方法使用说明
2014/12/18 Javascript
JavaScript实现点击自动选择TextArea文本的方法
2015/07/02 Javascript
详解 javascript中offsetleft属性的用法
2015/11/11 Javascript
全面解析Bootstrap手风琴效果
2020/04/17 Javascript
超详细的JS弹出窗口代码大全
2020/04/18 Javascript
require.js+vue开发微信上传图片组件
2016/10/27 Javascript
AngularJS的依赖注入实例分析(使用module和injector)
2017/01/19 Javascript
原生js实现选项卡功能
2017/03/08 Javascript
Bootstrap表单制作代码
2017/03/17 Javascript
如何使用bootstrap框架 bootstrap入门必看!
2017/04/13 Javascript
微信小程序实现人脸识别登陆的示例代码
2019/04/02 Javascript
利用React高阶组件实现一个面包屑导航的示例
2020/08/23 Javascript
[03:32]2014DOTA2西雅图邀请赛 CIS外卡赛赛前black专访
2014/07/09 DOTA
Python数据类型学习笔记
2016/01/13 Python
python处理csv数据动态显示曲线实例代码
2018/01/23 Python
python 获取utc时间转化为本地时间的方法
2018/12/31 Python
Python字符串对象实现原理详解
2019/07/01 Python
pycharm运行程序时看不到任何结果显示的解决
2020/02/21 Python
Python tornado上传文件的功能
2020/03/26 Python
Python如何在bool函数中取值
2020/09/21 Python
pycharm2020.1.2永久破解激活教程,实测有效
2020/10/29 Python
python 实现图片裁剪小工具
2021/02/02 Python
Ann Taylor官方网站:美国最大的女性产品制造商之一
2016/09/14 全球购物
Auchan Direct波兰:欧尚在线杂货店
2016/10/19 全球购物
mysql的最长数据库名,表名,字段名可以是多长
2014/04/21 面试题
上班打牌检讨书
2014/02/07 职场文书
内衣营销方案
2014/03/15 职场文书
机关领导查摆四风思想汇报
2014/09/13 职场文书
培训班开班主持词
2015/07/02 职场文书