1. 程式人生 > >微信小程式上傳一或多張圖片

微信小程式上傳一或多張圖片

一.要點

1.選取圖片

  1. wx.chooseImage({
  2. sizeType:[],// original 原圖,compressed 壓縮圖,預設二者都有
  3. sourceType:[],// album 從相簿選圖,camera 使用相機,預設二者都有
  4. success:function(res){
  5. console.log(res);
  6. var array = res.tempFilePaths,//圖片的本地檔案路徑列表
  7. }
  8. })

2.上傳圖片

  1. wx.uploadFile({
  2. url:'',//開發者伺服器的 url
  3. filePath:'',// 要上傳檔案資源的路徑 String型別!!!
  4. name:'uploadFile',// 檔案對應的 key ,(後臺介面規定的關於圖片的請求引數)
  5. header:{
  6. 'content-type':'multipart/form-data'
  7. },// 設定請求的 header
  8. formData:{},// HTTP 請求中其他額外的引數
  9. success:function(res){
  10. },
  11. fail:function(res){
  12. }
  13. })

二.程式碼示例

  1. // 點選上傳圖片
  2. upShopLogo:function(){
  3. var that =this;
  4. wx.showActionSheet({
  5. itemList
    :['從相簿中選擇','拍照'],
  6. itemColor:"#f7982a",
  7. success:function(res){
  8. if(!res.cancel){
  9. if(res.tapIndex ==0){
  10. that.chooseWxImageShop('album')
  11. }elseif(res.tapIndex ==1){
  12. that.chooseWxImageShop('camera')
  13. }
  14. }
  15. }
  16. })
  17. },
  18. chooseWxImageShop:function(type){
  19. var that =this;
  20. wx.chooseImage({
  21. sizeType
    :['original','compressed'],
  22. sourceType:[type],
  23. success:function(res){
  24. /*上傳單張
  25. that.data.orderDetail.shopImage = res.tempFilePaths[0],
  26. that.upload_file(API_URL + 'shop/shopIcon', res.tempFilePaths[0])
  27. */
  28. /*上傳多張(遍歷陣列,一次傳一張)
  29. for (var index in res.tempFilePaths) {
  30. that.upload_file(API_URL + 'shop/shopImage', res.tempFilePaths[index])
  31. }
  32. */
  33. }
  34. })
  35. },
  36. upload_file:function(url, filePath){
  37. var that =this;
  38. wx.uploadFile({
  39. url: url,
  40. filePath: filePath,
  41. name:'uploadFile',
  42. header:{
  43. 'content-type':'multipart/form-data'
  44. },// 設定請求的 header
  45. formData:{'shopId': wx.getStorageSync('shopId')},// HTTP 請求中其他額外的 form data
  46. success:function(res){
  47. wx.showToast({
  48. title:"圖片修改成功",
  49. icon:'success',
  50. duration:700
  51. })
  52. },
  53. fail:function(res){
  54. }
  55. })
  56. },