欢迎光临,了解微信小程序开发,就上易用通!

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

发布:2018-01-30 10:44浏览: 来源:网络 作者:cola

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

编写微信小程序时,用到 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





免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。