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

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

SpringBoot上傳圖片的示例

瀏覽:22日期: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久久,三上悠亚国产精品一区二区三区
国产va免费精品观看精品视频| 久久精品国产99国产| 精品视频自拍| 精品91福利视频| 亚洲精品**中文毛片| 中文av在线全新| 国产高清日韩| 成人在线超碰| 午夜国产一区二区| 爽爽淫人综合网网站| 日韩欧美中文字幕一区二区三区| 日韩高清一区在线| 欧美日韩精品一区二区三区在线观看| 亚洲2区在线| 国产精品videosex极品| 国产精品xx| sm捆绑调教国产免费网站在线观看| 电影天堂国产精品| 亚洲精品在线观看91| 性欧美69xoxoxoxo| 日韩专区视频网站| 欧美日韩18| 国产一区二区三区四区二区| 午夜久久免费观看| 欧美亚洲网站| 久久精品高清| 日本成人在线一区| 国产成人精品一区二区三区视频| 久久青青视频| 国产一区调教| 在线日韩欧美| 国产精品大片| 日韩电影免费在线观看| 免费观看日韩电影| 国产调教精品| 女生影院久久| 日韩精品dvd| 日韩中文字幕| 中文字幕在线高清| 午夜一级在线看亚洲| 国产日本久久| 日本精品在线中文字幕| 亚洲一区二区三区在线免费| 国产精品极品国产中出| 99久久99视频只有精品| 日韩毛片网站| 在线国产一区| 欧美片网站免费| 午夜av一区| 成人国产精品| 综合精品一区| 7777精品| 色婷婷精品视频| 国产亚洲电影| 久久免费黄色| 最新国产精品久久久| 亚洲精品88| 国产亚洲高清一区| 一区二区三区网站| 亚洲一级高清| 红杏一区二区三区| 日韩高清一区在线 | 亚洲一区观看| 成人欧美一区二区三区的电影| 欧美日韩中出| 婷婷亚洲综合| 日韩在线看片| 国产一区三区在线播放| 日韩va欧美va亚洲va久久| 亚洲欧美日韩国产一区二区| 日韩在线不卡| 91综合视频| 麻豆极品一区二区三区| 亚洲1区在线观看| 一区在线免费观看| 久久精品动漫| 日韩电影免费网站| 国产一区2区在线观看| 国产精品欧美在线观看| 日本在线成人| 午夜电影亚洲| 日韩天堂在线| 五月激情久久| 中文字幕在线免费观看视频| 久久精品国产精品亚洲毛片| 国产精品99久久久久久董美香| 日韩不卡一区二区三区| 中文在线日韩| 亚洲精品无播放器在线播放| 亚洲一区有码| 日韩精品视频一区二区三区| 日韩欧美激情电影| 日韩一区二区三免费高清在线观看| 丝袜美腿高跟呻吟高潮一区| 丝瓜av网站精品一区二区| 亚洲福利国产| 五月天久久久| 蜜臀av性久久久久蜜臀aⅴ流畅 | 里番精品3d一二三区| 乱一区二区av| 久久影院一区二区三区| 麻豆精品99| 黑人精品一区| 午夜免费一区| 亚洲影院天堂中文av色| 欧美一区=区三区| 麻豆精品视频在线观看免费| 国产精品99久久精品| 久久这里只有| 在线精品亚洲欧美日韩国产| 国产一区日韩一区| 99在线精品免费视频九九视| 性欧美长视频| 日本视频在线一区| 久久精品国产999大香线蕉| а√天堂8资源在线| 欧美日韩在线网站| 国产亚洲一区在线| 奇米亚洲欧美| 日韩成人a**站| 91久久午夜| 国产亚洲久久| 91精品在线观看国产| 99在线精品视频在线观看 | 亚洲午夜久久| 欧美激情视频一区二区三区免费 | 亚洲欧洲一区| 日韩av不卡一区二区| 精品一区二区三区的国产在线观看| 特黄毛片在线观看| 亚洲中字黄色| 免费在线播放第一区高清av| 久久精品1区| 只有精品亚洲| 精品久久久中文字幕| 日韩一区二区免费看| 欧美激情99| 国产精品色网| 欧美激情视频一区二区三区免费 | 久热re这里精品视频在线6| 欧美欧美黄在线二区| 麻豆理论在线观看| 男人的天堂亚洲一区| 精品精品99| 蜜臀久久99精品久久久画质超高清| 国产精品二区影院| 亚洲免费成人| 国产一区不卡| 四虎精品一区二区免费| 精品国模一区二区三区| 日韩高清不卡一区二区| 久久青草久久| 国产欧美高清视频在线| 国产真实久久| 欧美午夜三级| 午夜久久美女| 美女视频黄免费的久久| 免费久久99精品国产自在现线| 久久精品天堂| 亚洲精品中文字幕99999| 亚洲爱爱视频| 国产精品亚洲欧美一级在线| 在线一区免费观看| 国产成人精品一区二区三区免费| 亚洲三级精品| 亚洲欧美伊人| 国产成人精品福利| 久久国产欧美日韩精品| 丝袜美腿亚洲一区二区图片| 日韩影院二区| 国产精品三p一区二区| 欧美特黄视频| av在线最新| 国产精品成人3p一区二区三区| 亚洲三级在线| 性色一区二区| 亚洲电影在线一区二区三区| а√天堂8资源在线| 国产精品亚洲综合在线观看| 亚洲三级视频| 亚洲一区二区三区免费在线观看| 日韩在线精品| 精品国产精品国产偷麻豆 | 国产精品超碰| 日韩一区二区三区在线看| 国产手机视频一区二区| 欧美亚洲国产激情| 美女网站视频一区| 国产精品毛片一区二区在线看| 国产日韩1区| 国产欧美日韩在线一区二区| 日韩在线网址| 亚洲视频国产| 亚洲视频二区| 中文字幕一区二区三区日韩精品 | 国产视频亚洲| 久久精品国产亚洲夜色av网站| аⅴ资源天堂资源库在线| 国内精品伊人| 国产成人久久|