基于spring mvc 的文件上传(三)之实现controller的代码
2015-11-05 00:00
507 查看
摘要: 实现controller的代码
Student.Controller.java
@Controller
@RequestMapping("student")
public class StudentController extends PageController<Student>{
@Autowired
private StudentManager studentManager;
@Autowired
private StuIdManager stuIdManager;
@Override
public PageManager<Student> getEntityManager() {
return studentManager;
}
@Override
public String getFileBasePath() {
return "student/";
}
@RequestMapping(value = "/save",method=RequestMethod.POST)
public String saveFile(MultipartHttpServletRequest multipartRequest , HttpServletRequest request, HttpServletResponse response, ModelMap modelMap,
Student t, BindingResult result) throws Exception {
String material_address="D:/temp/";
String material_id="";
getManager().save(t);
String student_id=((AbstractEntity) t).getObjectId().toString();
Iterator <String> fileNames=multipartRequest.getFileNames();
while(fileNames.hasNext()){
String fileName=fileNames.next();
MultipartFile file = multipartRequest.getFile(fileName);
if(!file.isEmpty()){
material_id=file.getOriginalFilename();
FileUtils.copyInputStreamToFile(file.getInputStream(), new File(material_address, material_id));
stuIdManager.save(new StuId(material_address,material_id,student_id));
}
}
return "redirect:edit/" + ((AbstractEntity) t).getObjectId() + getMessage("common.base.success", request)
+ "&" + appendAjaxParameter(request) + "&action=" + request.getParameter("action");
}
@RequestMapping(value = "/delete")
public String deletefile(HttpServletRequest request, HttpServletResponse response, @PathVariable Long objectId)
throws Exception {
return handleDelete(request, response, objectId);
}
protected String handleDelete(HttpServletRequest request, HttpServletResponse response, Long objectId)
throws Exception {
getManager().delete(objectId);
return "student/deleteOK" ;
}
}
DownloadController.java
@Controller
@RequestMapping("check")
public class DownloadController extends PageController<Material>{
@Autowired
private MaterialManager materialManager;
@RequestMapping(value ="/checkmaterial",method=RequestMethod.GET)
public String checkmaterial( HttpServletRequest request ) throws Exception {
List<StuId> check=materialManager.searchByNativeSql(Material.class, "select * from STUID where student_id = "+request.getParameter("student_id"));
request.setAttribute("check", check);
return "student/result";
}
@Override
public PageManager<Material> getEntityManager() {
return null;
}
@Override
public String getFileBasePath() {
// TODO Auto-generated method stub
return null;
}
@RequestMapping(value ="/download")
public void downFile(HttpServletRequest request, HttpServletResponse response) throws IOException{
//获取文件下载路径
String path = request.getParameter("material_address");
String filename = request.getParameter("material_id");
File file=new File(path+filename);
InputStream fis = new BufferedInputStream(new FileInputStream(file));
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
fis.close();
// 清空response
response.reset();
// 设置response的Header
response.addHeader("Content-Disposition", "attachment;filename=" + filename);
response.addHeader("Content-Length", "" + file.length());
OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
response.setContentType("application/octet-stream");
toClient.write(buffer);
toClient.flush();
toClient.close();
}
}
Student.Controller.java
@Controller
@RequestMapping("student")
public class StudentController extends PageController<Student>{
@Autowired
private StudentManager studentManager;
@Autowired
private StuIdManager stuIdManager;
@Override
public PageManager<Student> getEntityManager() {
return studentManager;
}
@Override
public String getFileBasePath() {
return "student/";
}
@RequestMapping(value = "/save",method=RequestMethod.POST)
public String saveFile(MultipartHttpServletRequest multipartRequest , HttpServletRequest request, HttpServletResponse response, ModelMap modelMap,
Student t, BindingResult result) throws Exception {
String material_address="D:/temp/";
String material_id="";
getManager().save(t);
String student_id=((AbstractEntity) t).getObjectId().toString();
Iterator <String> fileNames=multipartRequest.getFileNames();
while(fileNames.hasNext()){
String fileName=fileNames.next();
MultipartFile file = multipartRequest.getFile(fileName);
if(!file.isEmpty()){
material_id=file.getOriginalFilename();
FileUtils.copyInputStreamToFile(file.getInputStream(), new File(material_address, material_id));
stuIdManager.save(new StuId(material_address,material_id,student_id));
}
}
return "redirect:edit/" + ((AbstractEntity) t).getObjectId() + getMessage("common.base.success", request)
+ "&" + appendAjaxParameter(request) + "&action=" + request.getParameter("action");
}
@RequestMapping(value = "/delete")
public String deletefile(HttpServletRequest request, HttpServletResponse response, @PathVariable Long objectId)
throws Exception {
return handleDelete(request, response, objectId);
}
protected String handleDelete(HttpServletRequest request, HttpServletResponse response, Long objectId)
throws Exception {
getManager().delete(objectId);
return "student/deleteOK" ;
}
}
DownloadController.java
@Controller
@RequestMapping("check")
public class DownloadController extends PageController<Material>{
@Autowired
private MaterialManager materialManager;
@RequestMapping(value ="/checkmaterial",method=RequestMethod.GET)
public String checkmaterial( HttpServletRequest request ) throws Exception {
List<StuId> check=materialManager.searchByNativeSql(Material.class, "select * from STUID where student_id = "+request.getParameter("student_id"));
request.setAttribute("check", check);
return "student/result";
}
@Override
public PageManager<Material> getEntityManager() {
return null;
}
@Override
public String getFileBasePath() {
// TODO Auto-generated method stub
return null;
}
@RequestMapping(value ="/download")
public void downFile(HttpServletRequest request, HttpServletResponse response) throws IOException{
//获取文件下载路径
String path = request.getParameter("material_address");
String filename = request.getParameter("material_id");
File file=new File(path+filename);
InputStream fis = new BufferedInputStream(new FileInputStream(file));
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
fis.close();
// 清空response
response.reset();
// 设置response的Header
response.addHeader("Content-Disposition", "attachment;filename=" + filename);
response.addHeader("Content-Length", "" + file.length());
OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
response.setContentType("application/octet-stream");
toClient.write(buffer);
toClient.flush();
toClient.close();
}
}
相关文章推荐
- Spring学习篇:AOP知识整理
- java动态代理(JDK和cglib)
- SpringMVC ajax请求406 错误解决方案
- 不使用XML配置SpringMVC
- springmvc 为什么不支持string到data参数的转换
- java值传递,类继承,static关键字
- RxJava操作符(八)Aggregate
- RxJava操作符(七)Conditional and Boolean
- RxJava操作符(六)Utility
- RxJava操作符(五)Error Handling
- RxJava操作符(四)Combining
- 12c weblogic安装 The OpenJDK JVM is not supported on this platform
- RxJava操作符(三)Filtering
- RxJava操作符(二)Transforming Observables
- java.lang.IllegalArgumentException: No bean specified
- leetcode 149:Max Points on a Line(java实现)细致分析
- Struts2.0 入门,namespace
- RxJava操作符(一)Creating Observables
- myeclipse遇到的小问题
- JAVA格物致知基础篇:用JAX-RS和Jersey打造RESTful Service