网友真实露脸自拍10p,成人国产精品秘?久久久按摩,国产精品久久久久久无码不卡,成人免费区一区二区三区

小程序模板網

微信小程序開發(二)圖片上傳

發布時間:2018-04-20 10:38 所屬欄目:小程序開發教程

在之前的博客《Node.js+express+MySQL使用七牛云實現的用戶頭像修改》,已經實現了在MUI框架或者《 Ajax實現圖片上傳》。之前都是使用Node.js寫的一個后臺接口,就可以使用ajax上傳了,在MUI框架中的mui.ajax其實還是ajax。在《Node.js+express+MySQL使用七牛云實現的用戶頭像修改》我已經詳細的說了怎么配置七牛了,這里不再說明。

準備工作

配置uploadFile合法域名

在做微信小程序的圖片上傳之前我們需要先配置uploadFile的合法域名。這個可以看《微信小程序開發(一)新建小程序項目》的服務器配置部分。

看小程序文檔

看小程序文檔—wx.uploadFile,看文檔主要是看小程序給的api是怎么使用的。在使用wx.uploadFile之前需要先使用wx.chooseImage(OBJECT)這個api,因為我們需要先選擇圖片。

代碼實現

有了上面的準備工作后我們就可以實際操作了。

小程序端的實現

小程序端的實現其實很簡單,一個事件去出發選擇上傳操作。

 

				
  1. wx.chooseImage({
  2. count: 9, // 默認9
  3. sizeType: ['original', 'compressed'], // 可以指定是原圖還是壓縮圖,默認二者都有
  4. sourceType: ['album', 'camera'], // 可以指定來源是相冊還是相機,默認二者都有
  5. success: function (res) {
  6. // 返回選定照片的本地文件路徑列表,tempFilePath可以作為img標簽的src屬性顯示圖片
  7. var tempFilePaths = res.tempFilePaths;
  8. wx.uploadFile({
  9. url: 'https://www.hgdqdev.cn/api/upload2',
  10. filePath: tempFilePaths[0],
  11. name: 'file',
  12. header: {
  13. 'content-type': 'multipart/form-data'
  14. },
  15. success: function (res) {
  16. var data = res.data
  17. console.log(res);
  18. }
  19. })
  20. }
  21. })

這里我也開放我的兩個圖片上傳的接口:

 

				
  1. 【ajax版本】https://www.hgdqdev.cn/api/upload
  2. 【小程序版本】https://www.hgdqdev.cn/api/upload2

這兩個接口的使用大家可以看上線的文章,遇見接口不能使用時可以聯系我,我開服務器。

服務端的實現

在實現服務端,我們需要使用一個新的模塊multer,關于這個模塊的使用,大家可以看文檔就是了。  代碼:

 

				
  1. // 微信小程序 圖片上傳
  2. var multer = require('multer')
  3. var upload = multer({ dest: './tmp/' })
  4. // 圖片上傳
  5. router.all('/api/upload2', upload.single('file'), function(req, res, next){
  6. // 文件路徑
  7. var filePath = './tmp/' + req.file.filename;
  8. // 文件類型
  9. var fileType = req.file.mimetype;
  10. var lastName = '';
  11. switch (fileType){
  12. case 'image/png':
  13. lastName = '.png';
  14. break;
  15. case 'image/jpeg':
  16. lastName = '.jpg';
  17. break;
  18. default:
  19. lastName = '.png';
  20. break;
  21. }
  22. // 構建圖片名
  23. var fileName = Date.now() + lastName;
  24. console.log(req.file);
  25. // 圖片重命名
  26. fs.rename(filePath, fileName, (err) => {
  27. if (err) throw err;
  28. // 七牛上傳
  29. var putPolicy = new qiniu.rs.PutPolicy(bucket+":" + fileName);
  30. var token = putPolicy.token();
  31. var extra = new qiniu.io.PutExtra();
  32. qiniu.io.putFile(token, fileName, fileName, extra, function(err, ret) {
  33. if(!err) {
  34. // 上傳成功, 處理返回值
  35. // ret.key 是圖片的名字
  36. var imageSrc = 'http://o9059a64b.bkt.clouddn.com/' + ret.key;
  37. res.end(JSON.stringify({status:'100',msg:'上傳成功',imageUrl:imageSrc}));
  38. } else {
  39. // 上傳失敗, 處理返回代碼
  40. res.end(JSON.stringify({status:'101',msg:'上傳失敗',error:ret}));
  41. }
  42. // 上傳后刪除本地圖片
  43. fs.unlinkSync(fileName);
  44. });
  45. });
  46. })

后端代碼其實也很簡單的。理清思路就好做了。

效果圖

這里寫圖片描述  手機不能搞gif圖,就電腦截屏了,這個在微信預覽是一樣的。



易優小程序(企業版)+靈活api+前后代碼開源 碼云倉庫:starfork
本文地址:http://www.xiuhaier.com/wxmini/doc/course/23753.html 復制鏈接 如需定制請聯系易優客服咨詢:800182392 點擊咨詢
QQ在線咨詢
AI智能客服 ×