一:添加依賴:
為來(lái)賓等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及來(lái)賓網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、來(lái)賓網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
<!-- thymeleaf模板插件 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <!-- jsp依賴 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <!--<scope>provided</scope>--> </dependency>
二:application.xml配置文件路徑:
#配置上傳文件地址 image.location.path=f:/image/ #配置文件大小限制 spring.http.multipart.maxFileSize=100Mb spring.http.multipart.maxRequestSize=100Mb #靜態(tài)頁(yè)面的訪問配置 spring.thymeleaf.cache=false spring.thymeleaf.prefix=classpath:/templates/ spring.thymeleaf.check-template-location=true spring.thymeleaf.suffix=.html spring.thymeleaf.encoding=UTF-8 spring.thymeleaf.content-type=text/html spring.thymeleaf.mode=HTML5
三:編寫靜態(tài)頁(yè)面(src/main/resources下建文件夾static(static存放靜態(tài)文件,比如 css、js、image…)和templates(存放靜態(tài)頁(yè)面)兩個(gè)是同級(jí)目錄),先在templates 中新建一個(gè) uploadimg.html。
<!DOCTYPE html> <html> <head> <title>uploadimg.html</title> <meta name="keywords" content="keyword1,keyword2,keyword3"></meta> <meta name="description" content="this is my page"></meta> <meta name="content-type" content="text/html; charset=UTF-8"></meta> <!--<link rel="stylesheet" type="text/css" href="./styles.css" rel="external nofollow" >--> </head> <body> <form enctype="multipart/form-data" method="post" action="/dc/fileUpload"> 圖片<input type="file" name="file"/> <input type="submit" value="上傳"/> </form> </body> </html>
四:編寫Controller層:
package com.hot.analysis.controller.file; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.OutputStream; import java.util.Date; import java.util.Random; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.ModelAndView; import com.hot.analysis.exception.MyException; @RestController public class FileUploadController { //獲取配置文件的路徑 @Value("${image.location.path}") private String resourceDir; /** * 實(shí)現(xiàn)文件上傳 * */ @RequestMapping(value = "/index") public ModelAndView toIndex() { ModelAndView mv = new ModelAndView("uploadimg"); return mv; } //單個(gè)文件上傳 @RequestMapping("/dc/fileUpload") @ResponseBody public String fileUpload( MultipartFile file){ // 獲取上傳文件路徑 String uploadPath = file.getOriginalFilename(); // 獲取上傳文件的后綴 String fileSuffix = uploadPath.substring(uploadPath.lastIndexOf(".") + 1, uploadPath.length()); if (fileSuffix.equals("apk")) { uploadPath = resourceDir; } else { // 上傳目錄地址 // String uploadpath="E:/hot-manage/image/";//windows路徑 uploadPath =resourceDir;// liux路勁 } // 上傳文件名 String fileName = new Date().getTime() + new Random().nextInt(100) + "." + fileSuffix; File savefile = new File(uploadPath + fileName); if (!savefile.getParentFile().exists()) { savefile.getParentFile().mkdirs(); } try { file.transferTo(savefile); } catch (IllegalStateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } if (fileSuffix.equals("apk")) { return "/apk/" + fileName; } else { return "/image/" + fileName; } } // 批量上傳 @PostMapping("/dc/moreFileUpload") public String bacthFileUpload(MultipartFile[] file) throws MyException { StringBuffer buffer = new StringBuffer(); for (MultipartFile multipartFile : file) { String str = fileUpload(multipartFile); buffer.append(str); buffer.append(","); } String all = buffer.substring(0, buffer.length() - 1); return all; } // 刪除文件 @PostMapping("/dc/deleteFile") public String delFile(String path) { String resultInfo = null; int lastIndexOf = path.lastIndexOf("/"); String sb = path.substring(lastIndexOf + 1, path.length()); sb = "f:/image/" + sb; File file = new File(sb); if (file.exists()) { if (file.delete()) { resultInfo = "1-刪除成功"; } else { resultInfo = "0-刪除失敗"; } } else { resultInfo = "文件不存在!"; } return resultInfo; } //文件下載相關(guān)代碼 @RequestMapping("/download") public String downloadFile(HttpServletRequest request, HttpServletResponse response) { String fileName = "aim_test.txt";// 設(shè)置文件名,根據(jù)業(yè)務(wù)需要替換成要下載的文件名 if (fileName != null) { //設(shè)置文件路徑 String realPath = "D://aim//"; File file = new File(realPath , fileName); if (file.exists()) { response.setContentType("application/force-download");// 設(shè)置強(qiáng)制下載不打開 response.addHeader("Content-Disposition", "attachment;fileName=" + fileName);// 設(shè)置文件名 byte[] buffer = new byte[1024]; FileInputStream fis = null; BufferedInputStream bis = null; try { fis = new FileInputStream(file); bis = new BufferedInputStream(fis); OutputStream os = response.getOutputStream(); int i = bis.read(buffer); while (i != -1) { os.write(buffer, 0, i); i = bis.read(buffer); } System.out.println("success"); } catch (Exception e) { e.printStackTrace(); } finally { if (bis != null) { try { bis.close(); } catch (IOException e) { e.printStackTrace(); } } if (fis != null) { try { fis.close(); } catch (IOException e) { e.printStackTrace(); } } } } } return null; } }
測(cè)試:
成功返回路徑:
查看文件夾:
總結(jié)
以上所述是小編給大家介紹的Spring boot 實(shí)現(xiàn)單個(gè)或批量文件上傳功能,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)創(chuàng)新互聯(lián)網(wǎng)站的支持!
分享名稱:Springboot實(shí)現(xiàn)單個(gè)或批量文件上傳功能
文章來(lái)源:http://bm7419.com/article44/iidihe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、手機(jī)網(wǎng)站建設(shè)、云服務(wù)器、網(wǎng)站收錄、定制開發(fā)、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容