springMVC后台接受前端上传的文件及下载文件

3G技术应用

1人已加入

描述

通过MultipartHttpServletRequest 对象来接受前端上传的文件

public static Map《String, Object》 upload(HttpServletRequest request) throws IOException{

//文件上传的请求

MultipartHttpServletRequest mRequest = (MultipartHttpServletRequest) request;

//获取请求的参数

Map《String, MultipartFile》 fileMap = mRequest.getFileMap();

//项目的绝对路径 request.getSession().getServletContext().getRealPath()这个是得到项目的绝对地址

String ctxPath = request.getSession().getServletContext().getRealPath(“/”)

+ FileOperateUtil.FILEDIR;

File file = new File(ctxPath);

if (!file.exists()) {

file.mkdir();

}

Map《String, Object》 result = new HashMap《String, Object》();

Iterator《Map.Entry《String, MultipartFile》》 it = fileMap.entrySet().iterator();

//用hasNext() 判断是否有值,用next()方法把元素取出。

while(it.hasNext()){

Map.Entry《String, MultipartFile》 entry = it.next();

MultipartFile mFile = entry.getValue();

if(mFile.getSize() != 0 && !“”.equals(mFile.getName())){

write(mFile.getInputStream(), new FileOutputStream(ctxPath+mFile.getOriginalFilename()));

result.put(mFile.getName(), mFile.getOriginalFilename());

}

}

return result;

}

下载文件

public static void download(HttpServletRequest request,

HttpServletResponse response, String storeName, String contentType,

String realName) throws Exception {

response.setContentType(“text/html;charset=UTF-8”);

request.setCharacterEncoding(“UTF-8”);

BufferedInputStream bis = null;

BufferedOutputStream bos = null;

String ctxPath = request.getSession().getServletContext()

.getRealPath(“/”)

+ “你的存储的地址”;

String downLoadPath = ctxPath + storeName;

long fileLength = new File(downLoadPath).length();

response.setContentType(contentType);

response.setHeader(“Content-disposition”, “attachment; filename=”

+ new String(realName.getBytes(“utf-8”), “ISO8859-1”));

response.setHeader(“Content-Length”, String.valueOf(fileLength));

bis = new BufferedInputStream(new FileInputStream(downLoadPath));

bos = new BufferedOutputStream(response.getOutputStream());

byte[] buff = new byte[2048];

int bytesRead;

while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {

bos.write(buff, 0, bytesRead);

}

bis.close();

bos.close();

}

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分