您的位置:首页 > 编程语言 > Java开发

基于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();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: