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

您的位置:首頁技術文章
文章詳情頁

SpringBoot上傳圖片的示例

瀏覽:23日期:2023-04-10 17:48:31

說明:通常項目中,如果圖片比較多的話,都會把圖片放在專門的服務器上,而不會直接把圖片放在業務代碼所在的服務器上。下面的例子只是為了學習基本流程,所以放在了本地。

1、單張圖片上傳

1.1、前端用表單提交

前端代碼:

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

后端代碼;

SimpleDateFormat formatter = new SimpleDateFormat('/yyyy/MM/dd/'); @RequestMapping('/upload') public String fileUpload(MultipartFile file, HttpServletRequest request){ String time = formatter.format(new Date()); //圖片上傳服務器后所在的文件夾 String realPath = request.getServletContext().getRealPath('/img') + time; File folder = new File(realPath); if(!folder.exists()) folder.mkdirs(); //通常需要修改圖片的名字(防止重復) String oldName = file.getOriginalFilename(); String newName = UUID.randomUUID() + oldName.substring(oldName.lastIndexOf('.')); try { //將文件放到目標文件夾 file.transferTo(new File(folder, newName)); //通常還需要返回圖片的URL,為了通用性,需要動態獲取協議,不要固定寫死 String returnUrl = request.getScheme() + '://' + request.getServerName() + ':' + request.getServerPort() + '/img' + time + newName; return returnUrl; } catch (IOException e) { e.printStackTrace(); } return null; }

1.2、前端用ajax提交

前端代碼與上面的略有不同,后臺代碼是一樣的。

<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <title>Title</title></head><body> <input type='file' id='file'> <input type='submit' value='上傳' onclick='uploadFile()'><h1 id='result'></h1></body><script src='https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js'></script><script>function uploadFile() { var file = $('#file')[0].files[0]; var formData = new FormData(); formData.append('file', file); $.ajax({ type:'post', url:'/upload', processData:false, contentType:false, data:formData, success:function (msg) { $('#result').html(msg); } })}</script></html>

2、多個圖片上傳

前端代碼:

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

后臺代碼:

@RequestMapping('/uploads') public String fileUploads(MultipartFile[]files, HttpServletRequest request){ String time = formatter.format(new Date()); //圖片上傳服務器后所在的文件夾 String realPath = request.getServletContext().getRealPath('/img') + time; File folder = new File(realPath); if(!folder.exists()) folder.mkdirs(); for (MultipartFile file : files) { //通常需要修改圖片的名字(防止重復) String oldName = file.getOriginalFilename(); String newName = UUID.randomUUID() + oldName.substring(oldName.lastIndexOf('.')); try { //將文件放到目標文件夾 file.transferTo(new File(folder, newName)); //通常還需要返回圖片的URL,為了通用性,需要動態獲取協議,不要固定寫死 String returnUrl = request.getScheme() + '://' + request.getServerName() + ':' + request.getServerPort() + '/img' + time + newName; System.out.println(returnUrl); } catch (IOException e) { e.printStackTrace(); } } return null; }

3、問題記錄

在后臺代碼中,有一行需要注意下:

String realPath = request.getServletContext().getRealPath('/img') + time;

需要理解一下realPath究竟指的是什么。剛開始測試的時候,圖片上傳成功后,后臺idea里找不到對應的圖片,然后根據它返回的realPath,在C盤用戶目錄下的某個文件夾里找到了該圖片(user/AppData/....)。

shift+shift 全局搜索 getCommonDocumentRoot這個方法,點進去,有個靜態數組:COMMON_DOC_ROOTS

private static final String[] COMMON_DOC_ROOTS = new String[]{'src/main/webapp', 'public', 'static'};

發現默認是指webapp下,或者根目錄下的public、static文件夾(與src并列)。然而這些目錄都沒有,所以Spring定向到了工程目錄以外的一個位置。

于是我在根目錄下新建一個static文件夾,再次上傳,果然有效了。

SpringBoot上傳圖片的示例

以上就是SpringBoot上傳圖片的示例的詳細內容,更多關于SpringBoot上傳圖片的資料請關注好吧啦網其它相關文章!

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产伦理久久久久久妇女| 免费一区二区视频| 综合一区av| 亚洲天堂1区| аⅴ资源天堂资源库在线| 美女国产精品久久久| 美腿丝袜在线亚洲一区| 国产精品激情| 久久99视频| 99热精品久久| 国产精品蜜芽在线观看| 亚洲网站视频| 亚洲精品高潮| 久久免费视频66| 精品丝袜在线| 久久国产高清| 国产精品网址| 日韩三区四区| 91九色精品| 91成人在线精品视频| 久久精品九色| 蜜臀91精品国产高清在线观看| 日韩午夜一区| 国产精品九九| 欧美特黄a级高清免费大片a级| 一区二区国产在线| 精品国产亚洲一区二区三区大结局| 久久一区精品| 亚洲黄色影院| 国产精品xxxav免费视频| 91精品精品| 国产欧美精品| 美女网站视频一区| 国产欧美在线| 一级欧洲+日本+国产| 免费日韩成人| 一区二区电影| 久久精品影视| 欧美国产中文高清| 综合亚洲视频| 欧美日韩精品一区二区视频| 国产福利资源一区| 蜜桃久久av| 久久婷婷丁香| 老司机精品视频网| 日韩美女精品| 巨乳诱惑日韩免费av| 精品视频一区二区三区在线观看 | www成人在线视频| 久久激情综合网| 国产精品呻吟| 亚洲v在线看| 久久av免费| 国产欧美久久一区二区三区| 丝袜a∨在线一区二区三区不卡 | 国产欧美日韩精品一区二区免费| 男女男精品视频网| 在线日韩一区| 激情综合自拍| 99精品视频精品精品视频| 国产精品久久久久久久免费软件 | 麻豆一区在线| 捆绑调教美女网站视频一区| 国产伦一区二区三区| 97久久中文字幕| 69堂免费精品视频在线播放| 色8久久久久| 亚洲精品日本| 日本午夜精品久久久久| 国产欧美一区二区精品久久久 | 日韩毛片在线| 免费欧美一区| 99国产精品视频免费观看一公开 | 亚洲狼人精品一区二区三区| 亚州精品视频| 国产精品免费精品自在线观看| 国产乱码精品一区二区三区四区| 国产三级精品三级在线观看国产| 国产日产一区| 国产精东传媒成人av电影| 国产一区二区三区四区大秀| 欧美精品资源| 蜜桃久久久久久| 国产情侣一区| 成人在线黄色| 欧美/亚洲一区| 蜜臀av在线播放一区二区三区 | 日韩88av| 另类国产ts人妖高潮视频| 日韩精品一区二区三区中文在线| 欧美久久香蕉| 国产精品欧美三级在线观看| 久久久免费人体| 999久久久国产精品| 亚洲欧美日韩国产综合精品二区| 亚洲精品乱码| 精品精品99| 日韩视频久久| 国产欧美精品久久| 日韩不卡视频在线观看| 在线视频精品| 国产欧美日韩综合一区在线播放| 麻豆中文一区二区| 国产综合激情| 国产极品嫩模在线观看91精品| 中文在线а√天堂| 婷婷综合亚洲| 国产精品中文字幕制服诱惑| 色88888久久久久久影院| 日韩在线麻豆| 欧美日韩国产免费观看视频| 日韩二区三区四区| 999国产精品999久久久久久| 最新亚洲国产| 欧美在线亚洲| 老牛国内精品亚洲成av人片| 黄色精品网站| 不卡福利视频| 日韩欧美三区| 99国产精品| 亚洲www啪成人一区二区| 综合激情在线| 91亚洲自偷观看高清| 奇米色欧美一区二区三区| 在线一区免费观看| 麻豆91小视频| 国产精品久久久久久妇女 | 精品中文字幕一区二区三区 | 日本va欧美va瓶| 色8久久久久| 91成人精品视频| 日韩成人精品一区| 麻豆国产精品777777在线| 日韩欧美三区| 日韩精品免费视频人成| 亚洲自拍另类| 日韩午夜免费| 国产欧美精品| 国产一区调教| 精品国产美女a久久9999| 久久不卡国产精品一区二区| 欧美日韩一区二区三区四区在线观看| 亚洲精品高潮| 欧美日韩伊人| 国产一区二区三区久久| 国产午夜久久av| 精品黄色一级片| 综合日韩av| 欧美日韩在线二区| 国产亚洲激情| 日韩影院精彩在线| 免费看日韩精品| 午夜av一区| 亚洲婷婷丁香| 91精品美女| 中文一区一区三区高中清不卡免费| 亚洲特色特黄| 综合干狼人综合首页| 亚洲人成网77777色在线播放| 国产午夜一区| 精品亚洲成人| 久久亚洲精品中文字幕蜜潮电影| 日韩精品永久网址| 亚洲激情另类| 日本欧美韩国一区三区| 加勒比视频一区| 日韩午夜黄色| 久久精品国产久精国产| 久久亚洲国产| 国产亚洲一卡2卡3卡4卡新区| 精品欠久久久中文字幕加勒比| 日韩伦理一区| 奇米777国产一区国产二区| 国产一区二区三区黄网站| 久久久久蜜桃| 婷婷五月色综合香五月| 精品在线网站观看| 亚洲欧美日韩国产一区| 精品久久电影| 天堂va欧美ⅴa亚洲va一国产| 黄毛片在线观看| 日韩激情中文字幕| 岛国av在线网站| 日韩国产91| 狠狠爱成人网| 另类专区亚洲| 国产精品视频一区二区三区四蜜臂| 蜜臀91精品国产高清在线观看| 麻豆久久久久久久| 日本欧美在线| 国产亚洲激情| 91久久久精品国产| 97se综合| 国产在线视频欧美一区| 日本va欧美va精品发布| 蜜桃视频一区二区三区在线观看| 九九色在线视频| 新版的欧美在线视频| 久久伊人亚洲| 久久99视频|