欢迎访问宙启技术站
智能推送

微信小程序中如何上传图片到服务器

发布时间:2023-05-17 14:36:42

微信小程序是一种轻量级的应用程序,由于其体积小、启动快、无需下载安装等特点,使其逐渐成为互联网应用开发的重要手段。在微信小程序开发中,上传图片到服务器算是一个比较常见的需求。下面就来介绍微信小程序中如何上传图片到服务器。

一、前置条件

使用微信小程序上传图片到服务器,您需要先了解以下知识点:

1. 微信小程序原生API之wx.chooseImage()选择图片接口,可选参数可配置为:

  count:最多能选择几张图片,默认9。

  sizeType:图片的尺寸类型,original 原图,compressed 压缩图,默认都可以。

  sourceType:图片的来源,album 从相册选择,camera 使用相机,默认都可以。

  success:完成的回调函数。

2.请求头部标识Content-Type为multipart/form-data,即可上传二进制文件。

3. 服务端API需能够接收multipart/form-data类型的请求。

二、上传图片到服务器

1.微信小程序端代码示例

在微信小程序中选择要上传的图片后,会触发wx.chooseImage()方法的回调函数,其中会给出选择的图片的本地路径地址。接下来我们需要将本地的图片文件上传到服务器。

// 选择上传的图片

wx.chooseImage({

   count: 1,

   sizeType: ['compressed'],

   sourceType: ['album', 'camera'],

   success: function (res) {

      var tempFilePaths = res.tempFilePaths

      // 将选择的图片上传到服务器

      wx.uploadFile({

         url: 'https://example.weixin.qq.com/upload', //上传到这个网址

         filePath: tempFilePaths[0],

         name: 'file',

         success: function (res) {

            console.log(res)

         }

      })

   }

})

2.服务端API的实现

前面已经提到,服务端API需能够接收multipart/form-data类型的请求。下面是一个PHP后端API示例:

//获取文件流

$file = $_FILES['file']; 

if ($file['error'] == UPLOAD_ERR_OK) {// 上传成功

   $tmp_name = $file['tmp_name']; // 临时文件名

   $name = $file['name']; // 文件名

   $type = $file['type']; // 文件类型

   $size = $file['size']; // 文件大小

   $json = array(

      'name' => $name,

      'type' => $type,

      'size' => $size,

      'url' => 'https://example.weixin.qq.com/uploads/'.$name // 文件下载地址

   );

   // 处理文件,例如存储到数据库或者将文件保存到本地服务器

   $path = "uploads/".$name;//存放到此处

   move_uploaded_file($tmp_name, $path);

   echo json_encode($json);

}else{

   $json = array('errorcode' => $file['error']);

   echo json_encode($json);

}

三、总结

本篇文章介绍了微信小程序中如何上传图片到服务器,包括前置条件、微信小程序端代码示例、服务端API的实现。总的来说,上传图片到服务器并不难,只需要先选择上传的图片,然后将本地的图片文件上传到服务器即可。如果你想在微信小程序中上传其他类型的文件,只需要按照类似的方法去发送二进制文件即可。