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


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 相关文章推荐
ie 处理 gif动画 的onload 事件的一个 bug
Apr 12 Javascript
javascript attachEvent和addEventListener使用方法
Mar 19 Javascript
打造基于jQuery的高性能TreeView(asp.net)
Feb 23 Javascript
基于jQuery的可用于选项卡及幻灯的切换插件
Mar 28 Javascript
jQuery1.6 正式版发布并提供下载
May 05 Javascript
jCallout 轻松实现气泡提示功能
Sep 22 Javascript
使用JS实现jQuery的addClass, removeClass, hasClass函数功能
Oct 31 Javascript
浅谈JavaScript的全局变量与局部变量
Jun 10 Javascript
JavaScript 栈的详解及实例代码
Jan 22 Javascript
利用hasOwnProperty给数组去重的面试题分享
Nov 05 Javascript
vue + typescript + video.js实现 流媒体播放 视频监控功能
Jul 07 Javascript
html+vue.js 实现漂亮分页功能可兼容IE
Nov 07 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实现生成HTML静态页面
2015/11/18 PHP
php代码检查代理ip的有效性
2016/08/19 PHP
js活用事件触发对象动作
2008/08/10 Javascript
Jquery.addClass始终无效原因分析
2013/09/08 Javascript
js冒泡、捕获事件及阻止冒泡方法详细总结
2014/05/08 Javascript
判断复选框是否被选中的两种方法
2014/06/04 Javascript
JS获取文件大小方法小结
2015/12/08 Javascript
jquery插件方式实现table查询功能的简单实例
2016/06/06 Javascript
Javascript中浏览器窗口的基本操作总结
2016/08/18 Javascript
解决node.js安装包失败的几种方法
2016/09/02 Javascript
Vue.JS入门教程之事件监听
2016/12/01 Javascript
vue2.0 + element UI 中 el-table 数据导出Excel的方法
2018/03/02 Javascript
JS实现DOM删除节点操作示例
2018/04/04 Javascript
js中获取URL参数的共用方法getRequest()方法实例详解
2018/10/24 Javascript
微信小程序时间控件picker view使用详解
2018/12/28 Javascript
基于javascript的拖拽类封装详解
2019/04/19 Javascript
JavaScript学习教程之cookie与webstorage
2019/06/23 Javascript
JavaScript实现点击切换验证码及校验
2021/01/10 Javascript
[02:39]DOTA2英雄基础教程 天怒法师
2013/11/29 DOTA
[03:27]最受玩家喜爱奖提名:PZH_Element 致玩家寄语
2016/12/20 DOTA
Python中index()和seek()的用法(详解)
2017/04/27 Python
python实现移位加密和解密
2019/03/22 Python
python不使用for计算两组、多个矩形两两间的iou方式
2020/01/18 Python
机电专业大学生求职信
2013/10/04 职场文书
实习单位接收函模板
2014/01/10 职场文书
高校教师思想汇报
2014/01/11 职场文书
乡镇总工会学雷锋活动总结
2014/03/01 职场文书
《理想的风筝》教学反思
2014/04/11 职场文书
村党支部书记个人对照材料汇报
2014/10/26 职场文书
2014年计划生育工作总结
2014/11/14 职场文书
全国爱牙日活动总结
2015/02/05 职场文书
个人借条范本
2015/05/25 职场文书
2016参观监狱警示教育活动心得体会
2016/01/15 职场文书
《月球之谜》教学反思
2016/02/20 职场文书
Redis 彻底禁用RDB持久化操作
2021/07/09 Redis
Python基础数据类型tuple元组的概念与用法
2021/08/02 Python