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


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前台判断开始时间是否小于结束时间
Feb 23 Javascript
用jQuery获取IE9下拉框默认值问题探讨
Jul 22 Javascript
extjs render 用法介绍
Sep 11 Javascript
jQuery拖拽 &amp; 弹出层 介绍与示例
Dec 27 Javascript
提高jQuery性能优化的技巧
Aug 03 Javascript
JS组件Bootstrap Table使用方法详解
Feb 02 Javascript
jQuery过滤选择器用法示例
Sep 12 Javascript
详解VueJs异步动态加载块
Mar 09 Javascript
vue.js层叠轮播效果的实例代码
Nov 08 Javascript
koa2的中间件功能及应用示例
Mar 05 Javascript
Vue实现穿梭框效果
Sep 30 Javascript
Vue实现手机号、验证码登录(60s禁用倒计时)
Dec 19 Vue.js
微信小程序生成二维码的示例代码
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面向对象学习笔记之二 生成对象的设计模式
2012/10/06 PHP
PHP程序员基本要求和必备技能
2014/05/09 PHP
php中函数前加&amp;符号的作用分解
2014/07/08 PHP
常见的四种POST 提交数据方式(小总结)
2015/10/08 PHP
laravel实现登录时监听事件,添加登录用户的记录方法
2019/09/30 PHP
PHP实现限制域名访问的实现代码(本地验证)
2020/09/13 PHP
根据判断浏览器类型屏幕分辨率自动调用不同CSS的代码
2007/02/22 Javascript
浅谈 jQuery 事件源码定位问题
2014/06/18 Javascript
基于jQuery插件实现环形图标菜单旋转切换特效
2015/05/15 Javascript
php结合imgareaselect实现图片裁剪
2015/07/05 Javascript
jQuery表单验证功能实例
2015/08/28 Javascript
使用three.js 画渐变的直线
2016/06/05 Javascript
用nodejs的实现原理和搭建服务器(动态)
2016/08/10 NodeJs
jQuery查找节点方法完整实例
2016/09/13 Javascript
NodeJS、NPM安装配置步骤(windows版本) 以及环境变量详解
2017/05/13 NodeJs
vue-cli的eslint相关用法
2017/09/29 Javascript
js 提取某()特殊字符串长度的实例
2017/12/06 Javascript
JS选取DOM元素常见操作方法实例分析
2018/12/10 Javascript
Django+vue跨域问题解决的详细步骤
2019/01/20 Javascript
微信小程序停止其他视频播放当前视频的实例代码
2019/12/25 Javascript
vue使用map代替Aarry数组循环遍历的方法
2020/04/30 Javascript
antd Select下拉菜单动态添加option里的内容操作
2020/11/02 Javascript
Python中time模块与datetime模块在使用中的不同之处
2015/11/24 Python
Python判断列表是否已排序的各种方法及其性能分析
2016/06/20 Python
Django 添加静态文件的两种实现方法(必看篇)
2017/07/14 Python
详解Python 序列化Serialize 和 反序列化Deserialize
2017/08/20 Python
python 寻找优化使成本函数最小的最优解的方法
2017/12/28 Python
微信公众号token验证失败解决方案
2019/07/22 Python
使用canvas绘制贝塞尔曲线
2014/12/17 HTML / CSS
HTML5实现移动端复制功能
2018/04/19 HTML / CSS
关爱女孩行动实施方案
2014/03/13 职场文书
审计局2014法制宣传日活动总结
2014/11/01 职场文书
涉外离婚协议书怎么写
2014/11/20 职场文书
2014年保育员工作总结
2014/12/02 职场文书
Keras多线程机制与flask多线程冲突的解决方案
2021/05/28 Python
mysql 乱码 字符集latin1转UTF8
2022/04/19 MySQL