找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索本站精品资源

首页 教程频道 小程序开发 查看内容

微信小程序 wx.uploadFile 的编码坑跳坑记录

作者:模板之家 2018-1-30 10:42 1413人关注

本文是我和作者一起解决一个问题后,他的总结稿; 编写微信小程序时,用到 wx.uploadFile,用来上传 图片+文本 信息.然而在编写过程中,由于官方的 demo 和文档描述很少,在几个坑

本文是我和作者一起解决一个问题后,他的总结稿;

编写微信小程序时,用到 wx.uploadFile,用来上传图片+文本信息.然而在编写过程中,由于官方的 demo 和文档描述很少,在几个坑上耗费了不少时间.

这里分享一个和编码有关的坑,主要是由于真机预览时 formData 中的非字母、数字的 ASCII 编码的字符如中文、泰文传输到服务端将不会自动进行转码码,并会会产生乱码及溢出,从而导致错误。

微信的 uploadFile 类似与 html 中的form带文件上传的表单

( enctype=”multipart/form-data” ), 这样 post 上传的表单,可以包含文件,同时包含其它的键值数据。微信小程序用 uploadFile 实现类似的操作.

我的微信小程序端的uploadFile 代码如下 :


	
  1. wx.uploadFile({
  2.  
  3. url: 'https://<upload_domain>/save',
  4.  
  5. filePath:photoPath, //待上传的图片,由 chooseImage获得
  6.  
  7. name:'food_image',
  8.  
  9. formData: {
  10.  
  11. latitude:0.0,
  12.  
  13. longitude:0.0,
  14.  
  15. restaurant_id:0,
  16.  
  17. city:'北京',
  18.  
  19. name:'beijing' // 名称
  20.  
  21. }, // HTTP 请求中其他额外的 form data
  22.  
  23. success: function(res){
  24.  
  25. console.log("addfood success",res);
  26.  
  27. },
  28.  
  29. fail: function(res) {
  30.  
  31. console.log("addfood fail",res);
  32.  
  33. },
  34.  
  35. })
  36.  
  37. },

服务端我用的 php 编写,这里接受文件的接口为 save ,我将 $_POST 和 $_FILES 里的数据直接输出到info.log 文件中用来进行调试.代码如下:


	
  1. public function save(Request $request)
  2. {
  3. error_log("FILES:" . json_encode($_FILES) . "\r\n", 3, "./logs/info.log");
  4. error_log


路过

雷人

握手

鲜花

鸡蛋
原作者: 模板之家 来自: 网络收集

全部回复(0)