天天看點

springboot 檔案上傳和下載下傳

檔案的上傳和下載下傳

1、檔案上傳

html頁面代碼如下

<form method="post" action="/file/upload1" enctype="multipart/form-data">

<p>

檔案:<input type="file" name="file">

<input type="submit" value="上傳">

</p>

</form>

Controller代碼,

​​​@RequestMapping​​​(“/upload1”)

​​​@ResponseBody​​​public String upload1(​​@RequestParam​​(“file”)MultipartFile file,HttpServletRequest request) throws IOException {

//擷取檔案名

String filename=file.getOriginalFilename();

//檔案上傳後路徑

String path=”E://images//“;

File file1=new File(path+filename);

//如果檔案不存在,則建立新的檔案夾

if(!file1.getParentFile().exists()){

file1.getParentFile().mkdirs();

}

byte[] bytes=file.getBytes(); //獲得檔案位元組

//将filename檔案寫入到path路徑下

FileOutputStream fos=new FileOutputStream(file1);

fos.write(bytes); //将位元組寫入

fos.flush();

fos.close();

return “ok”;

}

判斷檔案的另一個方法,将

File file1=new File(path+filename);

//如果檔案不存在,則建立新的檔案夾

if(!file1.getParentFile().exists()){

file1.getParentFile().mkdirs();

}

FileOutputStream fos=new FileOutputStream(file1);

替換成

File file1=new File(path);

//如果檔案不存在,則建立新的檔案夾

if(!file1.exists()){

file1.mkdirs();

}

FileOutputStream fos=new FileOutputStream(path+filename);

2、檔案上傳(第二中方法)

  1. ​@RequestMapping("/upload1")​

  2. ​@ResponseBody​

  3. ​public String upload1(@RequestParam("file")MultipartFile file,HttpServletRequest request) throws IOException {​

  4. ​ //擷取檔案名​

  5. ​ String filename=file.getOriginalFilename();​

  6. ​ //檔案上傳後路徑​

  7. ​ String path="E://images//";​

  8. ​ File file1=new File(path+filename);​

  9. ​ //如果檔案不存在,則建立新的檔案夾​

  10. ​ if(!file1.getParentFile().exists()){​

  11. ​ file1.getParentFile().mkdirs();​

  12. ​ }​

  13. ​ //上傳的檔案存放的位置​

  14. ​ file.transferTo(file1);​

  15. ​ return "ok";​

  16. ​}​

3、檔案下載下傳代碼

//檔案下載下傳

​​​@RequestMapping​​​(“/download”)

​​​@ResponseBody​​​public String download(HttpServletResponse response) throws IOException {

//要下載下傳的檔案路徑

String filepath=”E://images//“;

//要下載下傳的檔案名稱

String filename=”1.jpg”;

File file=new File(filepath,filename);

//判斷檔案是否存在

if(file.exists()){

response.setContentType(“application/force-download”);//設定強制下載下傳不打開

response.addHeader(“Content-Disposition”,”attachment;fileName=”+filename);//設定檔案名

byte[]buf=new byte[1024];

//檔案輸入了

FileInputStream fis=null;

//帶緩沖的位元組流

BufferedInputStream bis=null;

OutputStream os=null;//輸出流

try{

fis=new FileInputStream(file);

bis=new BufferedInputStream(fis);

os=response.getOutputStream();

int i=bis.read(buf);

while (i!=-1){

os.write(buf);

i=bis.read(buf);

}

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}finally {

if(bis!=null){

bis.close();

}if(fis!=null){

fis.close();

}

}

}

return “download”;

}

4、多檔案上傳代碼