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

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

SpringBoot上傳圖片的示例

瀏覽:10日期: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
相關文章:
主站蜘蛛池模板: 国产精品久久久 | 一级毛片真人免费播放视频 | 色拍拍噜噜噜aⅴ在线观看 色青青草原桃花久久综合 色婷婷91 | 呦女精品 | 日韩精品一区二区三区视频网 | 国产欧美一区二区三区免费 | 一本色道久久综合狠狠躁 | 热久久伊人| 国产成人在线看 | 国产成人午夜极速观看 | 亚洲三级在线 | 中文字幕在线观看一区二区三区 | 亚洲人妖女同在线播放 | 国产在亚洲线视频观看 | 日韩黄色毛片 | 99综合视频| 欧美成人免费全部色播 | 美女黄频免费观看 | 黄色免费三级 | 在线有码| 久久久国产精品免费视频 | 欧美怡红院免费全视频 | 米奇777色狠狠8888影视 | 国产精品视频一区二区猎奇 | a级国产乱理伦片在线观看 a级国产乱理伦片在线观看99 | 国产精品久久国产精品99 | 偷拍视频一区在线观看 | 国产三级日本三级在线播放 | 131美女爱做免费毛片 | 一个人的视频日本免费 | 国产日韩一区二区三区在线观看 | 亚洲国产小视频 | 国产精品久久久久久久y | 亚洲视频在线观看免费视频 | 欧美激情免费a视频 | 99在线观看| 手机看片日韩国产一区二区 | 免费一级a毛片在线播 | 国产精品亚洲一区二区在线观看 | 久久久久久久久久免免费精品 | 国产精品久久久久久久hd |