免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

Springboot實現單個或批量文件上傳功能

一:添加依賴:

為來賓等地區用戶提供了全套網頁設計制作服務,及來賓網站建設行業解決方案。主營業務為成都網站建設、網站設計、來賓網站設計,以傳統方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業、用心的態度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

<!-- 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
#靜態頁面的訪問配置
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

三:編寫靜態頁面(src/main/resources下建文件夾static(static存放靜態文件,比如 css、js、image…)和templates(存放靜態頁面)兩個是同級目錄),先在templates 中新建一個 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;
 /**
   * 實現文件上傳
   * */
 @RequestMapping(value = "/index")
 public ModelAndView toIndex() {
 ModelAndView mv = new ModelAndView("uploadimg");
 return mv;
 }
  //單個文件上傳
  @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;
 }
 //文件下載相關代碼
  @RequestMapping("/download")
  public String downloadFile(HttpServletRequest request, HttpServletResponse response) {
    String fileName = "aim_test.txt";// 設置文件名,根據業務需要替換成要下載的文件名
    if (fileName != null) {
      //設置文件路徑
      String realPath = "D://aim//";
      File file = new File(realPath , fileName);
      if (file.exists()) {
        response.setContentType("application/force-download");// 設置強制下載不打開
        response.addHeader("Content-Disposition", "attachment;fileName=" + fileName);// 設置文件名
        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;
  }

  }

測試:

Spring boot 實現單個或批量文件上傳功能

成功返回路徑:

Spring boot 實現單個或批量文件上傳功能

查看文件夾:

Spring boot 實現單個或批量文件上傳功能

總結

以上所述是小編給大家介紹的Spring boot 實現單個或批量文件上傳功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對創新互聯網站的支持!

分享名稱:Springboot實現單個或批量文件上傳功能
文章來源:http://m.newbst.com/article44/iidihe.html

成都網站建設公司_創新互聯,為您提供建站公司手機網站建設云服務器網站收錄定制開發品牌網站制作

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都網站建設