日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Spring Boot整合web層實(shí)現(xiàn)過(guò)程詳解

瀏覽:20日期:2023-09-12 09:09:44

Spring Boot中對(duì)Spring MVC的文件上傳是一脈相傳的,我們雙擊shift去搜CommonsMultipartResolver這個(gè)類,它是文件上傳的一個(gè)實(shí)現(xiàn)類。我們先看一下源碼:

Spring Boot整合web層實(shí)現(xiàn)過(guò)程詳解

我們可以看到它是MultipartResolver的實(shí)現(xiàn)類,我們?cè)貱trl+H,就可以看到右側(cè)MultipartResolver的兩個(gè)實(shí)現(xiàn)類。第一個(gè)實(shí)現(xiàn)類在servlet3.0之后,什么都不用加,就可以直接使用。第二個(gè)實(shí)現(xiàn)類的兼容性要好一些,早期的servlet也可以使用,但需要自己額外的加依賴。那么在Spring Boot中,我們就可以直接使用第一個(gè)實(shí)現(xiàn)類去完成文件上傳。

只需要一個(gè)controller和一個(gè)靜態(tài)html文件,就可以,先看一下代碼

package com.zl.upload;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RestController;import org.springframework.web.multipart.MultipartFile;import javax.servlet.http.HttpServletRequest;import java.io.File;import java.io.IOException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.UUID;import java.util.logging.SimpleFormatter;@RestControllerpublic class UploadController { SimpleDateFormat ss=new SimpleDateFormat('yyyy/MM/dd/'); @PostMapping('/upload') //HttpServletRequest request獲取緩存地址,一般這里使用圖片服務(wù)器 public String upload(MultipartFile multipartFile , HttpServletRequest request){ //圖片保存在項(xiàng)目的運(yùn)行路徑下 String format = ss.format(new Date()); String realpath = request.getServletContext().getRealPath('img') + format; //創(chuàng)建保存的文件夾 File f = new File(realpath); if(!f.exists()){ f.mkdirs(); } //因?yàn)槲募赡軙?huì)重復(fù),所以要對(duì)文件名進(jìn)行修改 String oldName = multipartFile.getOriginalFilename(); System.out.println(oldName); String newName = UUID.randomUUID().toString() + oldName.substring(oldName.lastIndexOf('.')); //保存圖片 try { multipartFile.transferTo(new File(f,newName)); //獲取路徑,動(dòng)態(tài)獲取,因?yàn)橛锌赡苁莌ttp,也有可能是HTTPS String path = request.getScheme() + '://' + request.getServerName() + ':' + request.getServerPort() + '/img' + format + newName; return path ; } catch (IOException e) { e.printStackTrace(); } return 'error'; }}

第一步,創(chuàng)建文件的存放地址,和路徑

第二步,修改文件名

第三步,保存文件(文件件,和文件名)

后端的處理就完了,我們看一下前臺(tái)如何處理

<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <title>文件上傳</title></head><body><form action='/upload' method='post' enctype='multipart/form-data'> <input type='file' name='multipartFile'> <input type='submit' value='提交'></form></body></html>

前端處理很簡(jiǎn)單,就是開啟文件上傳通道就可以了。

但是這種做法在前后端分離開發(fā)中很少使用,接下來(lái)我們看一下用ajax如何實(shí)現(xiàn)。

后端的不用變,前端的改成ajax的:

<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <title>ajax文件上傳</title> <script src='http://m.b3g6.com/bcjs/jquery-3.4.1.min.js'></script></head><script> function uploads() { alert('ss'); var multipartFile=$('#file')[0].files[0]; alert(multipartFile); var formData=new FormData(); formData.append('multipartFile',multipartFile); $.ajax({ type:’post’, url:’/upload’, processData:false, contentType:false, data:formData, success:function (msg) {$('#result').html(msg); } } ) }</script><body><form enctype='multipart/form-data'><input type='file' id='file'><input type='button' value='上傳' onclick='uploads()'></form><div id='result'></div></body></html>

這個(gè)是單文件上傳,如果是多文件上傳,改如何處理呢?

后端處理

@PostMapping('/uploads') //HttpServletRequest request獲取緩存地址,一般這里使用圖片服務(wù)器 public String uploads(MultipartFile [] multipartFiles , HttpServletRequest request){ //圖片保存在項(xiàng)目的運(yùn)行路徑下 String format = ss.format(new Date()); String realpath = request.getServletContext().getRealPath('img') + format; //創(chuàng)建保存的文件夾 File f = new File(realpath); if(!f.exists()){ f.mkdirs(); } //用for循環(huán)獲取每個(gè)文件 for (MultipartFile file: multipartFiles){ String oldName = file.getOriginalFilename(); String newName = UUID.randomUUID().toString() + oldName.substring(oldName.lastIndexOf('.')); //保存圖片 try {file.transferTo(new File(f,newName));//獲取路徑,動(dòng)態(tài)獲取,因?yàn)橛锌赡苁莌ttp,也有可能是HTTPSString path = request.getScheme() + '://' + request.getServerName() + ':' + request.getServerPort() + '/img' + format + newName;System.out.println(path); } catch (IOException e) {e.printStackTrace(); } } //因?yàn)槲募赡軙?huì)重復(fù),所以要對(duì)文件名進(jìn)行修改 return 'success'; }

前端處理:

<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <title>文件上傳</title></head><body><form action='/uploads' method='post' enctype='multipart/form-data'> <input type='file' name='multipartFiles' multiple> <input type='submit' value='提交'></form></body></html>

就是把前端拿到的文件存在數(shù)組里,去遍歷每一個(gè),和單文件的做法一致。以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Spring
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲丝袜美腿一区| 美腿丝袜亚洲三区| 999久久久精品国产| 国产精品成人自拍| 美女久久99| 一区二区三区四区日本视频| 色老板在线视频一区二区| 亚洲高清毛片| 综合激情视频| 亚洲精品免费观看| 欧美激情综合| 久久九九电影| 亚洲欧洲美洲国产香蕉| 国产精品亚洲片在线播放| 久久精品国产99| 欧美一区二区三区高清视频| 在线一区免费观看| 欧美亚洲人成在线| 精品亚洲二区| 亚洲在线成人| 欧美伊人影院| 色吊丝一区二区| 视频一区二区中文字幕| 欧美激情视频一区二区三区免费 | 国产精品毛片| 日本天堂一区| 日韩久久视频| 亚洲狼人精品一区二区三区| 国产videos久久| 男女精品网站| 久久精品色播| 日韩亚洲精品在线| 久久99影视| 免播放器亚洲| 精品国产亚洲一区二区三区| 久久国产成人| 91视频精品| 日韩av中文字幕一区二区| 国产精品黑丝在线播放| 麻豆9191精品国产| 国产传媒av在线| 91久久精品无嫩草影院| 欧美一级精品| 福利一区视频| 日本午夜精品视频在线观看| 亚洲小说欧美另类婷婷| 精品国产亚洲日本| 天堂久久一区| 夜夜嗨一区二区| 中文字幕在线看片| 国产精品九九| 久久午夜精品| 欧美少妇精品| 国产精品流白浆在线观看| 欧美美女一区| 欧美国产美女| 国产精品一区二区三区美女| 久久国产66| 偷拍欧美精品| 日韩精品永久网址| 日韩av自拍| 美女视频黄免费的久久| 亚洲综合中文| 日韩视频在线一区二区三区 | 国产精品美女久久久久久不卡| 国内精品福利| 欧美国产偷国产精品三区| 欧美aa在线视频| 欧美日韩精品一区二区三区视频 | 亚洲视频国产精品| 波多野结衣一区| 成人看片网站| 日韩国产一区| 97精品国产| 国产一区二区精品福利地址| 国产精品美女午夜爽爽| 青青青国产精品| 视频国产精品| 先锋影音久久久| 国产亚洲在线| 91精品电影| 欧美三级网址| 国产66精品| 免费视频一区二区三区在线观看| 亚洲视频国产精品| 亚洲精品日本| 五月激激激综合网色播| 一区二区高清| 视频一区视频二区在线观看| 国产一区白浆| 亚洲一区二区免费在线观看| 亚洲精品午夜av福利久久蜜桃| 91精品国产91久久久久久黑人| 深夜视频一区二区| 欧美日韩水蜜桃| 一级欧洲+日本+国产| 久久三级视频| 久久久久国产| japanese国产精品| 亚洲欧美激情诱惑| 亚洲欧美日韩精品一区二区 | 亚洲综合色婷婷在线观看| 久久香蕉精品| 亚洲人成精品久久久| 日本一区二区三区视频在线看| 一二三区精品| 日本va欧美va瓶| 国产亚洲精aa在线看| 国产亚洲精品美女久久久久久久久久| 国产午夜久久av| 国产精品最新自拍| 国产成人精品一区二区免费看京| 捆绑调教日本一区二区三区| 久久久影院免费| 三级一区在线视频先锋| 中文字幕日本一区| 国产精品极品| 亚洲v在线看| 蜜桃av一区二区在线观看| 日韩免费精品| 久草精品视频| 桃色一区二区| 亚洲免费一区二区| 欧美一级二级三级视频| 福利一区二区三区视频在线观看| 久久一级电影| 日本不卡不码高清免费观看 | 国产精品日本一区二区不卡视频| 久久中文字幕导航| 91精品国产成人观看| 亚洲欧美久久| 国产精品2023| 欧美成a人免费观看久久| 美女被久久久| 国产精品毛片久久久| a天堂资源在线| 99国产精品久久久久久久| 日韩成人在线看| 超碰超碰人人人人精品| 亚洲在线国产日韩欧美| 国产精品极品国产中出| 私拍精品福利视频在线一区| 中文字幕一区二区精品区| 久久香蕉网站| 亚洲激情国产| 国产精品网站在线看| 久久精品123| 日韩精品视频网站| 日韩欧美另类一区二区| 亚洲精品一级| yellow在线观看网址| 亚洲香蕉久久| 99久久99久久精品国产片果冰| 老牛国产精品一区的观看方式| 免费观看亚洲天堂| 亚洲久久视频| 视频福利一区| 日本特黄久久久高潮| 久久精品国产大片免费观看| 欧美一级全黄| 在线视频免费在线观看一区二区| 欧美黑人做爰爽爽爽| 国产午夜精品一区二区三区欧美 | 欧美伊人久久| 日韩亚洲精品在线| 国产精品不卡| 国产亚洲欧美日韩精品一区二区三区 | 精品国产日韩欧美精品国产欧美日韩一区二区三区 | 国产免费av国片精品草莓男男| 私拍精品福利视频在线一区| 日韩和欧美一区二区| 视频小说一区二区| 久久精品国产免费| 日韩欧美三区| 久久国产精品久久w女人spa| 欧美13videosex性极品| 久久在线91| 青青伊人久久| 亚州欧美在线| 丝袜美腿亚洲一区| 亚州av乱码久久精品蜜桃| 成人影视亚洲图片在线| 免费在线成人网| 黄色免费成人| 亚洲天堂黄色| 欧产日产国产精品视频| 老司机精品视频网| 日韩高清在线不卡| 一区二区三区四区在线观看国产日韩| 日本精品影院| 三级精品视频| 日本少妇一区| 超碰在线99| 国产精品宾馆| 国产色99精品9i| 日韩精品视频在线看| 日韩激情中文字幕| 亚洲久久一区| 日韩视频1区| 97精品国产99久久久久久免费|