国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

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

SpringBoot上傳圖片的示例

瀏覽:2日期: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
相關文章:
主站蜘蛛池模板: 97视频久久| 成人在线亚洲 | 全部免费的毛片在线看美国 | 精品国产一区二区三区不卡蜜臂 | 欧美成人亚洲 | 人成免费a级毛片 | 亚洲精品中文字幕久久久久久 | 久久成人18免费网站 | 欧洲成人全免费视频网站 | 免费国产成人午夜在线观看 | 亚洲综合久久综合激情久久 | 亚洲精品美女 | 亚洲人成综合网站在线 | 九久久| 在线观看一级毛片免费 | 国产成人综合日韩精品无 | tubesexvideo日本护士 | 欧美一区二区三区四区在线观看 | 黄色w站| 在线不卡亚洲 | 成人高清在线观看播放 | 久久经典免费视频 | 毛片免费观看成人 | 久久久精品国产免费观看同学 | 黄色网址网站在线观看 | 亚洲国产成人精品91久久久 | 国产a级特黄的片子视频免费 | 国产成人精品999在线观看 | 国产精品欧美视频另类专区 | 99在线精品视频 | 黄性色| 亚洲一区二区三区精品视频 | 亚洲人成网站在线在线 | 国产精彩视频在线观看 | 美女张开双腿让男人桶视频免费 | 日韩亚 | 欧美日韩一区二区在线 | 中国美女一级看片 | 国产微拍精品福利视频 | 国产精品嘿咻嘿咻在线播放 | 久久黄色视屏 |