SpringMVC使用第三方組件實(shí)現(xiàn)文件上傳
一、文件上傳的必要前提
A form 表單的 enctype 取值必須是:multipart/form-data
(默認(rèn)值是:application/x-www-form-urlencoded) enctype:是表單請(qǐng)求正文的類型
B method 屬性取值必須是 Post
C 提供一個(gè)文件選擇域 input type=file
二、借助第三方組件實(shí)現(xiàn)文件上傳
三、
/** * springmvc跨服務(wù)器上傳文件 * @return */ @RequestMapping("/testFileUpload1") public String testFileUpload1(MultipartFile upload) throws IOException { System.out.println("跨服務(wù)器文件上傳..."); // 定義上傳文件服務(wù)器路徑 String path = "http://localhost:9090/uploads/"; // 說明上傳文件項(xiàng) // 獲取上傳文件的名稱 String filename = upload.getOriginalFilename(); // 把文件的名稱設(shè)置唯一值,uuid String uuid = UUID.randomUUID().toString().replace("-", ""); filename = uuid+"_"+filename; // 創(chuàng)建客戶端的對(duì)象 Client client = Client.create(); // 和圖片服務(wù)器進(jìn)行連接 WebResource webResource = client.resource(path + filename); // 上傳文件 webResource.put(upload.getBytes()); return "success"; } /** * * 這里的upload必須與index.jsp的upload一致 * * springmvc文件上傳 * @return */ @RequestMapping("/testFileUpload") public String testFileUpload(HttpServletRequest request, MultipartFile upload) throws IOException { // 使用fileupload組件完成文件上傳 // 上傳的位置(獲取上傳到服務(wù)器上的文件路徑) String path = request.getSession().getServletContext().getRealPath("/uploads/"); // 判斷,該路徑是否存在 File file = new File(path); if(!file.exists()){ file.mkdir(); } // 說明上傳文件項(xiàng) // 獲取上傳文件的名稱 String filename = upload.getOriginalFilename(); // 把文件的名稱設(shè)置唯一值,uuid String uuid = UUID.randomUUID().toString().replace("-", ""); filename = uuid+"_"+filename; // 完成文件上傳 upload.transferTo(new File(path,filename)); return "success"; }
四、在springmvc.xml配置文件解析器
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
一篇文章帶你搞定 springsecurity基于數(shù)據(jù)庫的認(rèn)證(springsecurity整合mybatis)
這篇文章主要介紹了一篇文章帶你搞定 springsecurity基于數(shù)據(jù)庫的認(rèn)證(springsecurity整合mybatis),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10Spring項(xiàng)目中使用Cache?Redis實(shí)現(xiàn)數(shù)據(jù)緩存
這篇文章主要為大家介紹了項(xiàng)目中使用Spring?Cache?Redis實(shí)現(xiàn)數(shù)據(jù)緩存,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06SpringCloud-Gateway轉(zhuǎn)發(fā)WebSocket失敗問題及解決
這篇文章主要介紹了SpringCloud-Gateway轉(zhuǎn)發(fā)WebSocket失敗問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-091秒鐘實(shí)現(xiàn)Springboot?替換/寫入?word文檔里面的文字、圖片功能
這篇文章主要介紹了Springboot?替換/寫入?word文檔里面的文字、圖片,1秒鐘實(shí)現(xiàn),本文結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-12-12利用Socket.io 實(shí)現(xiàn)消息實(shí)時(shí)推送功能
這篇文章主要介紹了利用Socket.io 實(shí)現(xiàn)消息實(shí)時(shí)推送功能,需要的朋友可以參考下2017-12-12關(guān)于RestTemplate中的Get請(qǐng)求
這篇文章主要介紹了關(guān)于RestTemplate中的Get請(qǐng)求,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07java使用UDP實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)通信
這篇文章主要為大家詳細(xì)介紹了java使用UDP實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)通信,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06java實(shí)現(xiàn)圖片寫入高清字體及帶邊框的方法
這篇文章主要介紹了java實(shí)現(xiàn)圖片寫入高清字體及帶邊框的方法,涉及java針對(duì)圖片及文字的相關(guān)操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07