檔案的上傳和下載下傳
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”)
@ResponseBodypublic 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、檔案上傳(第二中方法)
-
@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();
-
}
-
//上傳的檔案存放的位置
-
file.transferTo(file1);
-
return "ok";
-
}
3、檔案下載下傳代碼
//檔案下載下傳
@RequestMapping(“/download”)
@ResponseBodypublic 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、多檔案上傳代碼