Spring MVCのファイルアップロードとダウンロード
「君は一葉の舟を見て、出没騒ぎの中で」Spring MVCを使ってファイルのアップロードとダウンロードを行います.Spring MVCのjarバッグのほかに、commons-fileuload-1.2.jar、comons-to-2.11.jarの2つのカバンを使います.ここではダウンロードアドレスが提供されています.ファイルにアップロードされたjspページ:PS:ここで注意してください.formタグには、属性があります. Spring MVCの構成: Userエンティティクラス: アップロードファイルのControllerコードを処理する: アップロードが成功したら、ダウンロードを提供するページにジャンプします. ダウンロード要求のControllerコードを処理する:
enctype="multipart/form-data"
、アップロード機能を使うには、この属性が必要です.
10485760
UTF-8
import org.springframework.web.multipart.MultipartFile;
import java.io.Serializable;
/**
* @author aRunner
* @date 2018/10/27
*/
public class User implements Serializable {
private String username;
private MultipartFile image;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public MultipartFile getImage() {
return image;
}
public void setImage(MultipartFile image) {
this.image = image;
}
}
// MultipartFile
@RequestMapping(value = "/register")
public String register(HttpServletRequest request, @ModelAttribute User user,Model model) throws Exception{
System.out.println(user.getUsername());
// ,
if (!user.getImage().isEmpty()) {
//
String path = request.getServletContext().getRealPath("/images/");
//
String filename = user.getImage().getOriginalFilename();
File filepath = new File(path, filename);
// ,
if (!filepath.isDirectory()) {
filepath.getParentFile().mkdir();
}
//
user.getImage().transferTo(new File(path + File.separator + filename));
// model
model.addAttribute("user",user);
//
return "userInfo";
}else {
return "error";
}
}
${request Scrope.user.marge.origginame}
// MultipartFile
@RequestMapping(value = "/download")
public ResponseEntity download(HttpServletRequest request,
@RequestParam("filename") String filename, Model model) throws Exception{
//
String path = request.getServletContext().getRealPath("/images/");
File file = new File(path + File.separator + filename);
HttpHeaders headers = new HttpHeaders();
// ,
String downloadFileName = new String(filename.getBytes("UTF-8"), "ISO-8859-1");
// attachment( )
headers.setContentDispositionFormData("attachment",downloadFileName);
//application/octet-stream: ( )
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
//201HttpStatus.CREATED
return new ResponseEntity(FileUtils.readFileToByteArray(file),headers,HttpStatus.CREATED);
}