文档章节

基于spring mvc 的文件上传(三)之实现controller的代码

p
 penghuCai
发布于 2015/11/05 10:38
字数 310
阅读 26
收藏 0

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

}

}






© 著作权归作者所有

p
粉丝 1
博文 9
码字总数 2436
作品 0
合肥
私信 提问
spring mvc文件上传实现进度条

文件上传应该大部分人都接触过,一般都是基于commons-fileupload组件来实现,SpringMVC的文件上传功能也是在commons-fileupload组件提供的功能上面做了一些包装功能,使文件上传开发更容易方...

小天120
2014/02/10
22.3K
20
springmvc上传文件方法及注意事项

本文基于注解的配置,敬请留意 基于注解整合 一。springmvc为我们提供两种上传方式配置: org.springframework.web.multipart.commons.CommonsMultipartResolver (基于commons-fileupload....

java~nick
2018/01/02
0
0
系列五、springMVC实现文件上传和跨服务器上传文件

一、实现文件上传 项目目录如下所示 一、导入依赖和配置springmvc.xml、web.xml 这个两个jar包是实现文件上传必须要导入的包 二、编写controller层 代码 springmvc实现文件上传帮我们省了不少...

我叫小糖主
06/01
196
0
fastupload-springmvc 0.5.5 发布

fastupload-springmvc是利用fastupload开源组件Spring MVC框架写的文件上传插件,使用此插件,能在Controller中以注解的方式来获取上传的文件,然后对其进行操作。比使用fastupload核心API更...

仪山湖
2013/04/15
1K
8
springBoot(10):web开发-文件上传

一、简介 Spring Boot默认使用springMVC包装好的解析器进行上传 二、代码实现 2.1、from表单 文件: 2.2、controller package com.

我爱大金子
2017/06/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周四乱弹 —— 当你简历注水但还是找到了工作

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @花间小酌 :#今日歌曲推荐# 分享成龙的单曲《男儿当自强》。 《男儿当自强》- 成龙 手机党少年们想听歌,请使劲儿戳(这里) @hxg2016 :刚在...

小小编辑
今天
2.7K
22
靠写代码赚钱的一些门路

作者 @mezod 译者 @josephchang10 如今,通过自己的代码去赚钱变得越来越简单,不过对很多人来说依然还是很难,因为他们不知道有哪些门路。 今天给大家分享一个精彩的 GitHub 库,这个库整理...

高级农民工
昨天
4
0
用好项目管理工具,人人都可以成为项目经理

现在市面上的项目管理工具越来越多了,但是大多数都是一些协同工具或轻量项目管理工具。如果是多团队、跨部门使用或者企业级的项目管理,从管理思想到工具运用,需要适应企业的业务流程体系,...

cs平台
昨天
12
0
只需一步,在Spring Boot中统一Restful API返回值格式与统一处理异常

统一返回值 在前后端分离大行其道的今天,有一个统一的返回值格式不仅能使我们的接口看起来更漂亮,而且还可以使前端可以统一处理很多东西,避免很多问题的产生。 比较通用的返回值格式如下:...

晓月寒丶
昨天
69
0
区块链应用到供应链上的好处和实际案例

区块链可以解决供应链中的很多问题,例如记录以及追踪产品。那么使用区块链应用到各产品供应链上到底有什么好处?猎头悬赏平台解优人才网小编给大家做个简单的分享: 使用区块链的最突出的优...

猎头悬赏平台
昨天
32
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部