微信小程序上传和下载文件

博客简介

本篇博客介绍微信小程序如何将文件上传到服务器,如何从服务器下载文件,主要步骤如下:

  • 搭建服务器
  • uploadFile上传文件
  • downloadFile下载文件

搭建服务器

既然想要将文件上传到服务器,那么我们首先要搭建一台服务器,这里用到的是新浪云的sae服务器,免费搭建并且提供免费域名,官方网址为:https://www.sinacloud.com/

  • 进入控制台
  • 点击创建应用
  • 进入存储与CDN创建仓库

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
这样我们的服务器就快速搭建好了。

uploadFile上传文件

关于uploadFileAPI的使用,微信官方给出了详细的属性参数以及返回信息:

属性 类型 默认值 必填 说明 最低版本
url string 开发者服务器地址
filePath string 要上传文件资源的路径 (网络路径)
name string 文件对应的 key,开发者在服务端可以通过这个 key 获取文件的二进制内容
header Object HTTP 请求 Header,Header 中不能设置 Referer
formData Object HTTP 请求中其他额外的 form data
timeout number 超时时间,单位为毫秒 2.10.0
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)

回调函数:

属性 类型 说明
data string 开发者服务器返回的数据
statusCode number 开发者服务器返回的 HTTP 状态码

了解了这些参数我们就要用PHP配置后台了

<?php
//sae存储文件
	$s=new SaeStorage();
	ob_start();
	readfile($_FILES['fileup']['temp_name']);
	$img=ob_get_contents();
	ob_end_clean();


	//获取文件大小
	$size=strlen($img);

	file_put_contents(SAE_TMP_PATH."/bg.jpg", $img);

	if($s->upload('test','test.jpg',SAE_TMP_PATH))
	{
		echo "上传成功";
	}
	else echo "上传失败";
?>

将php文件上传到仓库:
在这里插入图片描述

uploadFile上传文件

这里以上传图片为例:

  upLoadImage:function(){
    var that=this;
    //上传文件
    wx.chooseImage({
      success(res) {
        const tempFilePaths = res.tempFilePaths
        that.setData({
          imgSrc: tempFilePaths
        })
        wx.uploadFile({
          url: 'https://littlede.applinzi.com/upload.php', 
          filePath: tempFilePaths[0],
          name: 'fileUp001',
          success(res) {
            const data = res.data
            console.log(res);
            //do something
          }
        })
      }
    })
 }

在这里插入图片描述
绑定事件后上传,可以看到屏幕中的image区域已经替换成图片了,现在我们来看服务器端,可以看到已经将图片顺利上传到服务器。
在这里插入图片描述

downloadFile下载文件

下载文件可以用微信提供的downloadFileAPI,参数属性如下:

在这里插入图片描述
在这里插入图片描述
我们将仓库中的一种图片的url作为参数传入:

  download:function(){
    var that=this;
    wx.downloadFile({
      url: 'https://littlede.applinzi.com/dog.jpg', 
      success(res) {
        console.log(res.tempFilePath);
        that.setData({
          imgSrc: res.tempFilePath
        })
      }
    })
  },

下载成功:
在这里插入图片描述

发布了148 篇原创文章 · 获赞 250 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/weixin_44307065/article/details/104332775