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


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 面向对象编程 function也是类
Sep 17 Javascript
js parentElement和offsetParent之间的区别
Mar 23 Javascript
ExtJs使用总结(非常详细)
Mar 22 Javascript
javascript间隔刷新的简单实例
Nov 14 Javascript
Bootstrap多级导航栏(级联导航)的实现代码
Mar 08 Javascript
JavaScript浏览器对象之一Window对象详解
Jun 03 Javascript
浅谈JS对html标签的属性的干预以及对CSS样式表属性的干预
Jun 25 Javascript
React中上传图片到七牛的示例代码
Oct 10 Javascript
Node4-5静态资源服务器实战以及优化压缩文件实例内容
Aug 29 Javascript
layui table 表格上添加日期控件的两种方法
Sep 28 Javascript
jQuery实现简易聊天框
Feb 08 jQuery
基于JS实现操作成功之后自动跳转页面
Sep 25 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删除非空目录的函数代码小结
2013/02/28 PHP
PHP生成自定义长度随机字符串的函数分享
2014/05/04 PHP
php中array_multisort对多维数组排序的方法
2020/06/21 PHP
php中html_entity_decode实现HTML实体转义
2018/06/13 PHP
php 多个变量指向同一个引用($b = &amp;$a)用法分析
2019/11/13 PHP
Javascript实例教程(19) 使用HoTMetal(1)
2006/12/23 Javascript
在一个form用一个SUBMIT(或button)分别提交到两个处理表单页面的代码
2007/02/15 Javascript
input 高级限制级用法
2009/03/26 Javascript
几个比较经典常用的jQuery小技巧
2010/03/01 Javascript
utf-8编码引起js输出中文乱码的解决办法
2010/06/23 Javascript
javascript showModalDialog 内跳转页面的问题
2010/11/25 Javascript
js动态调用css属性的小规律及实例说明
2013/12/28 Javascript
ie下$.getJSON出现问题的解决方法
2014/02/12 Javascript
瀑布流布局代码一例
2014/04/11 Javascript
ECMAScript5中的对象存取器属性:getter和setter介绍
2014/12/08 Javascript
js实现下拉列表选中某个值的方法(3种方法)
2015/12/17 Javascript
jQuery实现的多滑动门,多选项卡效果代码
2016/03/28 Javascript
AngularJS基础 ng-switch 指令简单示例
2016/08/03 Javascript
jQuery日程管理控件glDatePicker用法详解
2017/03/29 jQuery
Vue+Element UI+Lumen实现通用表格分页功能
2019/02/02 Javascript
记一次vue-webpack项目优化实践详解
2019/02/17 Javascript
js实现旋转的星空效果
2019/11/01 Javascript
[39:19]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第二场 11.26
2020/11/30 DOTA
Python 文件操作实现代码
2009/10/07 Python
python3实现抓取网页资源的 N 种方法
2017/05/02 Python
pandas去重复行并分类汇总的实现方法
2019/01/29 Python
pytorch 实现在预训练模型的 input上增减通道
2020/01/06 Python
Python使用jpype模块调用jar包过程解析
2020/07/29 Python
移动端解决悬浮层(悬浮header、footer)会遮挡住内容的3种方法
2015/03/27 HTML / CSS
Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
2015/01/27 面试题
毕业生个人的求职信范文
2013/12/03 职场文书
金融专业大学生自我评价
2014/01/09 职场文书
就业自我评价
2014/02/04 职场文书
银行批评与自我批评
2014/02/10 职场文书
财务人员个人工作总结
2015/02/27 职场文书
MySQL Innodb关键特性之插入缓冲(insert buffer)
2021/04/08 MySQL