日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

深入讲解微信小程序上传图片与JAVA后台的结合

發布時間:2025/3/19 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深入讲解微信小程序上传图片与JAVA后台的结合 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

背景

微信小程序上傳文件是微信小程序提供的API之一,如果用JAVA后臺如何來處理上傳的文件呢?

官方文檔

UploadTask?wx.uploadFile(Object object)

將本地資源上傳到服務器。客戶端發起一個 HTTPS POST 請求,其中?content-type?為?multipart/form-data。

參數

Object object

屬性類型默認值必填說明最低版本
urlstring?開發者服務器地址?
filePathstring?要上傳文件資源的路徑 (本地路徑)?
namestring?文件對應的 key,開發者在服務端可以通過這個 key 獲取文件的二進制內容?
headerObject?HTTP 請求 Header,Header 中不能設置 Referer?
formDataObject?HTTP 請求中其他額外的 form data?
timeoutnumber?超時時間,單位為毫秒2.10.0
successfunction?接口調用成功的回調函數?
failfunction?接口調用失敗的回調函數?
completefunction?接口調用結束的回調函數(調用成功、失敗都會執行)?

object.success 回調函數

參數

Object res

屬性類型說明
datastring開發者服務器返回的數據
statusCodenumber開發者服務器返回的 HTTP 狀態碼

創建小程序與編寫代碼?

創建小程序就不說了,如果不是開發小程序,也不會來搞上傳文件。上傳的關鍵代碼如下

wx.uploadFile({url: getApp().globalData.host + '/uploadImage',filePath: "/images/full_cart.png",name: 'img',success: (res) => {console.log("upload succeed")var data = res.data;console.log(data);}, fail: () => {console.log("upload failed")}})

對于以上代碼上傳文件的關鍵參數有三個。

第一個參數:url。這個參數是服務器的地址。本文中,我們的服務器是在本地的Tomcat,那就自然而然的是 localhost:8080,也可以直接寫成? url: 'http://localhost:8080/uploadImage' 。 uploadImage 表示的是Controller的地址,下面會講到。

按照上文的寫法是因為我在App.js里面做了全局配置,

globalData: {host: 'http://localhost:8080',}

第二個參數:filePath。這個參數是我要上傳的文件?

第三個參數 name,是為這個圖片對象設定的key。在Controller中用到。

JAVA后臺工程創建與編碼

JAVA后臺,也叫JAVA后端吧,總之就是服務器的意思。

這里面選擇的是Spring Boot 創建的Maven工程,在工程比中創建一個Controller,并編碼。代碼如下。

import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile;import java.io.File; import java.io.IOException;/*** @author kangyucheng*/ @Controller public class UploadController {private final static Logger logger = LoggerFactory.getLogger(UploadController.class);@PostMapping("/uploadImage")@ResponseBodypublic String uploadImageFile(@RequestParam("img") MultipartFile uploadImage) throws IOException {String fileName = uploadImage.getOriginalFilename();String imgFilePath = "/Users/yuchk/Desktop/";File targetFile = new File(imgFilePath, fileName);//保存uploadImage.transferTo(targetFile);logger.info("圖片存儲成功");return "success";} }

需要注意的是

@PostMapping("/uploadImage") 要和微信小程序中的url參數中地址保持一致,
@RequestParam("img") 要和微信小程序中的name保持一致。

本地調試

本地調試的過程中首先要啟動Spring boot的工程。

然后編譯小程序,去觸發上傳的事件。

記得開啟不校驗合法域名。

本地調試結果?

真機調試?

?由于服務器是在本地開啟的,那么在真機無法訪問本地服務器的情況下,必然是會失敗的。

后臺錯誤的陷阱

假設我們的后臺發生了異常,那么微信小程序是沒法處理的。依然會當成上傳成功處理。

修改代碼

import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile;import java.io.File; import java.io.IOException;/*** @author kangyucheng*/ @Controller public class UploadController {private final static Logger logger = LoggerFactory.getLogger(UploadController.class);@PostMapping("/uploadImage")@ResponseBodypublic String uploadImageFile(@RequestParam("img") MultipartFile uploadImage) throws Exception {String fileName = uploadImage.getOriginalFilename();String imgFilePath = "/Users/yuchk/Desktop/";File targetFile = new File(imgFilePath, fileName);//保存uploadImage.transferTo(targetFile);logger.info("圖片存儲成功");throw new Exception("故意的,哈哈");} }

?再次本地觸發文件上傳事件。

結論: 要根據不同的返回結果,來判定文件是否到底上傳成功。

其他需要注意的地方

如果忘記寫? @ResponseBody? 注解,那可能是這種情況,雖然圖片上傳成功,但是返回給微信小程序的就不是我們預設的內容了。

?

如果返回的是一個自定義的類,那么也會發生錯誤。

/*** @author kangyucheng*/ @Controller public class UploadController {private final static Logger logger = LoggerFactory.getLogger(UploadController.class);@PostMapping("/uploadImage")@ResponseBodypublic M uploadImageFile(@RequestParam("img") MultipartFile uploadImage) throws Exception {String fileName = uploadImage.getOriginalFilename();String imgFilePath = "/Users/yuchk/Desktop/";File targetFile = new File(imgFilePath, fileName);//保存uploadImage.transferTo(targetFile);logger.info("圖片存儲成功");return new M("a","b");} } class M{String a;String b;public M(String a,String b){this.a = a;this.b = b;} }

總結

以上是生活随笔為你收集整理的深入讲解微信小程序上传图片与JAVA后台的结合的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 北条麻妃av在线 | 中文字幕av网址 | 爱的色放韩国电影 | 国产又色又爽又黄又免费 | 欧美日韩精品一区二区三区蜜桃 | 国产欧美一区二区三区免费看 | va欧美| 日本黄色a视频 | 欧洲一二三区 | 国产午夜福利在线播放 | 毛片网站在线免费观看 | 国产精品视频免费播放 | 欧美精品一区二区三区在线播放 | 久久综合精品视频 | 一级特黄高清 | 亚洲精品一二三区 | 99久久亚洲精品 | 毛片视频播放 | 日韩国产欧美在线观看 | 久久久久久黄色 | 日韩电影网址 | 亚洲视频区 | 日韩精品一区二区三区 | 亚洲国产一区在线观看 | 91禁国产网站 | 国产最新自拍 | 做a爰小视频 | 永久在线| 国产二区自拍 | 亚洲男女在线观看 | www.youjizz.com中国 | 国产一级做a爱免费视频 | 亚洲在线观看免费视频 | 99久久精品一区二区 | 亚洲天堂欧美 | xxxx国产片 | 欧美激情16p | 99久久精品国产一区二区成人 | 99热这里只有精品99 | 国产亚洲系列 | 午夜视频日韩 | 国产精品免费一区 | 色老板最新地址 | 不卡av免费在线观看 | 免费av在| 精品乱| 葵司av在线 | 日韩天堂 | 亚洲精品人妻无码 | 国产成人精品影视 | 天天躁日日躁狠狠躁av麻豆 | 国产精品福利小视频 | 少妇极品熟妇人妻无码 | 国产午夜福利在线播放 | 亚洲精品视频在线观看视频 | 欧美人与野| 19韩国主播青草vip | 操色网| 国产视频一区二区三区在线 | 老头吃奶性行交 | 制服诱惑一区二区 | 欧美第一视频 | 怡红院成永久免费人全部视频 | 成年人看片网站 | 日批视频在线看 | 欧美一级高清片 | 91啦丨九色丨刺激 | 一区二区三区资源 | 极品少妇在线 | 日韩欧美亚洲国产精品字幕久久久 | 人人爽爽爽 | 性生活网址 | 国产精品宾馆在线精品酒店 | 日韩欧美一区二区三区在线 | 日韩欧美在线一区二区三区 | 内射一区二区 | 干爹你真棒插曲mv在线观看 | 涩涩在线观看 | 国产色片在线观看 | 成人人伦一区二区三区 | 中国农村一级片 | 午夜一区二区三区在线 | 91麻豆成人精品国产 | 激情四月| 国产毛片欧美毛片久久久 | 国产精品av网站 | 美女扒开屁股让男人桶 | 黄页网站在线 | 黄色美女免费网站 | 四虎免费在线观看 | 久久久久久久久久久久久久 | 老司机精品导航 | 风韵少妇性饥渴推油按摩视频 | 国产视频福利在线 | 歪歪6080| 欧美成人二区 | 欧美三区四区 | 精品久久久久久久中文字幕 | 麻豆传媒在线播放 |