JavaScript

超轻量级php框架startmvc

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

更新时间:2020-08-19 21:00:01 作者:startmvc
本文实例讲述了微信小程序学习笔记之文件上传、下载操作。分享给大家供大家参考,具体

本文实例讲述了微信小程序学习笔记之文件上传、下载操作。分享给大家供大家参考,具体如下:

前面介绍了微信小程序登录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
 })
 }
 }
 })
 }
})

演示效果:

 

希望本文所述对大家微信小程序开发有所帮助。

微信小程序 文件 上传 下载