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


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的匿名函数使用介绍
Dec 11 Javascript
异步动态加载JS并运行(示例代码)
Dec 13 Javascript
node+express+ejs制作简单页面上手指南
Nov 26 Javascript
JavaScript数据结构和算法之图和图算法
Feb 11 Javascript
jquery实现鼠标滑过显示二级下拉菜单效果
Aug 24 Javascript
Ext JS动态加载JavaScript创建窗体的方法
Jun 23 Javascript
JSONP跨域请求实例详解
Jul 04 Javascript
web.js.字符串与正则表达式操作
May 13 Javascript
解决js ajax同步请求造成浏览器假死的问题
Jan 18 Javascript
详解vue-admin和后端(flask)分离结合的例子
Feb 12 Javascript
vue 实现在同一界面实现组件的动态添加和删除功能
Jun 16 Javascript
js实现浏览器打印功能的示例代码
Jul 15 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
ionCube 一款类似zend的PHP加密/解密工具
2010/07/25 PHP
php 冒泡排序 交换排序法
2011/05/10 PHP
php实现的网页版剪刀石头布游戏示例
2016/11/25 PHP
PHP crc32()函数讲解
2019/02/14 PHP
Javascript代码混淆综合解决方案-Javascript在线混淆器
2006/12/18 Javascript
Javascript中暂停功能的实现代码
2007/03/04 Javascript
JavaScript判断两种格式的输入日期的正确性的代码
2007/03/25 Javascript
Node.js中的事件驱动编程详解
2014/08/16 Javascript
JS建造者模式基本用法实例分析
2015/06/30 Javascript
jQuery animate easing使用方法图文详解
2016/06/17 Javascript
聊一聊Vue.js过渡效果
2016/09/07 Javascript
D3.js实现饼状图的方法详解
2016/09/21 Javascript
js表单登陆验证示例
2016/10/19 Javascript
jQuery UI制作选项卡(tabs)
2016/12/13 Javascript
Angular2使用Augury来调试Angular2程序
2017/05/21 Javascript
jQuery选择器之表单元素选择器详解
2017/09/19 jQuery
对node.js中render和send的用法详解
2018/05/14 Javascript
js实现简单抽奖功能
2020/11/24 Javascript
[03:48]DOTA2完美大师赛主赛事第二日精彩集锦
2017/11/24 DOTA
python计算牛顿迭代多项式实例分析
2015/05/07 Python
深入理解Python装饰器
2016/07/27 Python
Python学生信息管理系统修改版
2018/03/13 Python
Python使用 Beanstalkd 做异步任务处理的方法
2018/04/24 Python
python去重,一个由dict组成的list的去重示例
2019/01/21 Python
pycharm重命名文件的方法步骤
2019/07/29 Python
python Matplotlib模块的使用
2020/09/16 Python
利用CSS3的3D效果制作正方体
2020/03/10 HTML / CSS
html5中地理位置定位api接口开发应用小结
2013/01/04 HTML / CSS
世界上最好的野生海鲜和有机食品:Vital Choice
2020/01/16 全球购物
国外软件测试工程师面试题
2016/12/09 面试题
应届毕业生个人自我评价
2013/09/20 职场文书
财务人员的自我评价范文
2014/03/03 职场文书
中职毕业生自我鉴定
2014/09/13 职场文书
劳务派遣管理制度(样本)
2019/08/23 职场文书
详解MySQL集群搭建
2021/05/26 MySQL
MySQL实现用逗号进行拼接、以逗号进行分割
2022/12/24 MySQL