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


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 相关文章推荐
JavaScript 以对象为索引的关联数组
May 19 Javascript
JavaScript基础知识之数据类型
Aug 06 Javascript
JavaScript中的Web worker多线程API研究
Dec 06 Javascript
js库Modernizr的介绍和使用
May 07 Javascript
解决前端跨域问题方案汇总
Nov 20 Javascript
jquery-mobile基础属性与用法详解
Nov 23 Javascript
js实现下拉框效果(select)
Mar 28 Javascript
JavaScript 用fetch 实现异步下载文件功能
Jul 21 Javascript
React Navigation 使用中遇到的问题小结
May 08 Javascript
Bootstrap的aria-label和aria-labelledby属性实例详解
Nov 02 Javascript
微信小程序自定义tabbar custom-tab-bar 6s出不来解决方案(cover-view不兼容)
Nov 01 Javascript
详解Vue的七种传值方式
Feb 08 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截取中文字符串的问题
2006/07/12 PHP
php动态生成JavaScript代码
2009/03/09 PHP
PHP+shell实现多线程的方法
2015/07/01 PHP
PHP实现清除MySQL死连接的方法
2016/07/23 PHP
Extjs学习笔记之一 初识Extjs之MessageBox
2010/01/07 Javascript
JS实现让网页背景图片斜向移动的方法
2015/02/25 Javascript
详解AngularJS的通信机制
2015/06/18 Javascript
基于jquery实现简单的分页控件
2016/03/17 Javascript
JS输出空格的简单实现方法
2016/09/08 Javascript
js监听键盘事件的方法_原生和jquery的区别详解
2016/10/10 Javascript
Bootstrap modal 多弹窗之叠加关闭阴影遮罩问题的解决方法
2017/02/27 Javascript
Bootstrap fileinput文件上传组件使用详解
2017/06/06 Javascript
浅谈vue单一组件下动态修改数据时的全部重渲染
2018/03/01 Javascript
Angular 封装并发布组件的方法示例
2018/04/19 Javascript
Element-UI中关于table表格的那些骚操作(小结)
2019/08/15 Javascript
VUE 动态组件的应用案例分析
2019/12/02 Javascript
[50:59]2018DOTA2亚洲邀请赛 4.7 总决赛 LGD vs Mineski第四场
2018/04/10 DOTA
python正则匹配查询港澳通行证办理进度示例分享
2013/12/27 Python
python中管道用法入门实例
2015/06/04 Python
Python 的描述符 descriptor详解
2016/02/27 Python
Python实现的字典值比较功能示例
2018/01/08 Python
python用plt画图时,cmp设置方法
2018/12/13 Python
python selenium firefox使用详解
2019/02/26 Python
Python数组并集交集补集代码实例
2020/02/18 Python
如何在Python 游戏中模拟引力
2020/03/27 Python
不可轻视HTML5!App三年内将被html5顶替彻底消失
2015/11/18 HTML / CSS
Reebok俄罗斯官方网上商店:购买锐步运动服装和鞋子
2016/09/26 全球购物
Notino法国:购买香水和化妆品
2019/04/15 全球购物
北京银河万佳Java面试题
2012/03/21 面试题
学习雷锋活动总结
2014/04/29 职场文书
关于旅游的活动方案
2014/08/15 职场文书
公司领导班子对照检查材料
2014/09/24 职场文书
个人职业及收入证明
2014/10/13 职场文书
2014年林业工作总结
2014/12/05 职场文书
2014年政协工作总结
2014/12/09 职场文书
发言稿之优秀教师篇
2019/09/26 职场文书