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


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 页面划词搜索JS
Sep 28 Javascript
jquery关于图形报表的运用实现代码
Jan 06 Javascript
DIV+CSS+JS不间断横向滚动实现代码
Mar 19 Javascript
使用JavaScript进行进制转换将字符串转换为十进制
Sep 21 Javascript
JS动态创建DOM元素的方法
Jun 09 Javascript
TypeScript 中接口详解
Jun 19 Javascript
Javascript 事件冒泡机制详细介绍
Oct 10 Javascript
bootstrap table实例详解
Jan 06 Javascript
简单谈谈gulp-changed插件
Feb 21 Javascript
JS基于递归实现网页版计算器的方法分析
Dec 20 Javascript
微信小程序实现的picker多级联动功能示例
May 23 Javascript
如何实现一个简易版的vuex持久化工具
Sep 11 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
要会喝咖啡也要会知道咖啡豆
2021/03/03 咖啡文化
Linux fgetcsv取得的数组元素为空字符串的解决方法
2011/11/25 PHP
需要注意的几个PHP漏洞小结
2012/02/05 PHP
php使用百度ping服务代码实例
2014/06/19 PHP
PHP提示Warning:phpinfo() has been disabled函数禁用的解决方法
2014/12/17 PHP
使用PHP+AJAX让WordPress动态加载文章的教程
2015/12/11 PHP
phpstudy隐藏index.php的方法
2020/09/21 PHP
js下拉框二级关联菜单效果代码具体实现
2013/08/03 Javascript
javascript数组详解
2014/10/22 Javascript
jQuery检测返回值的数据类型
2015/07/13 Javascript
js验证身份证号有效性并提示对应信息
2015/10/19 Javascript
Javascript json object 与string 相互转换的简单实现
2016/09/27 Javascript
jquery checkbox的相关操作总结
2016/10/17 Javascript
js中常用的Math方法总结
2017/01/12 Javascript
JavaScript实现一个空中避难的小游戏
2017/06/06 Javascript
2种简单的js倒计时方式
2017/10/20 Javascript
一步步教你利用webpack如何搭一个vue脚手架(超详细讲解和注释)
2018/01/08 Javascript
vue-router3.0版本中 router.push 不能刷新页面的问题
2018/05/10 Javascript
通过实例了解JS 连续赋值
2019/09/24 Javascript
5分钟快速看懂ES6中的反射与代理
2019/12/19 Javascript
JS加载解析Markdown文档过程详解
2020/05/19 Javascript
JavaScript实现点击切换验证码及校验
2021/01/10 Javascript
深入理解Python分布式爬虫原理
2017/11/23 Python
VScode编写第一个Python程序HelloWorld步骤
2018/04/06 Python
pytorch 把MNIST数据集转换成图片和txt的方法
2018/05/20 Python
python+opencv实现高斯平滑滤波
2020/07/21 Python
浅谈Python 敏感词过滤的实现
2019/08/15 Python
详解Python中string模块除去Str还剩下什么
2020/11/30 Python
装潢设计实习自我鉴定
2013/09/19 职场文书
网络维护管理员的自我评价分享
2013/11/11 职场文书
项目计划书范文
2014/01/09 职场文书
2014银行领导班子四风对照检查材料思想汇报
2014/09/25 职场文书
运动会广播稿20字
2015/08/19 职场文书
运动会100米广播稿
2015/08/19 职场文书
SpringBoot集成Redis,并自定义对象序列化操作
2021/06/22 Java/Android
JavaWeb 入门篇(3)ServletContext 详解 具体应用
2021/07/16 Java/Android