
这篇文章主要介绍了SpringMVC+Ajax实现文件批量上传和下载功能实例代码,代码分为上传form和上传ajax,具体实例代码大家参考下本文
今天做了文件的上传下载,小小总结一下,基本的web项目建立及SpringMVC框架搭建此处不详细写出来了。
上传form:
上传Ajax:
spring.xml配置加上:
controller: /* * 上传多个文件 */ @RequestMapping(value = "/upload", produces = "application/json;charset=UTF-8") public @ResponseBody boolean uploadFiles(@RequestParam("file_upload") MultipartFile [] files) { boolean result = false; String realPath; for(int i=0;i
下载的jsp页面代码根据需求不同自己设计,这里给出controller代码:
/* * 下载多个文件 */ @RequestMapping(value = "/download") public void downloadFiles(HttpServletResponse response) { String str= request.getParameter("rows");//下载文件信息,包括文件名、存储路径等 JSONArray path=(JSONArray) JSONArray.parse(request.getParameter("rows")); Path paths[]=new Path[path.size()]; paths = JSONArray.parseArray(str, Path.class).toArray(paths); String uri = "d:"+ File.separator + "mldn.zip";//临时文件存储路径 File zipFile = new File(uri) ; // 定义压缩文件名称 ZipOutputStream zipOut = null;// 声明压缩流对象 InputStream input = null; //将要压缩的文件加入到压缩输出流中 try { zipOut = new ZipOutputStream(new FileOutputStream(zipFile)); } catch (FileNotFoundException e) { e.printStackTrace(); } for(int i = 0;i
将多个文件打成一个压缩包下载,然后将生成的临时压缩文件删除。
下载页面如果用Ajax提交请求的话要注意:ajax函数的返回类型只有xml、text、json、html等类型,没有“流”类型,所以我们要实现ajax下载,不能够使用相应的ajax函数进行文件下载。但可以用js生成一个form,用这个form提交参数,并返回“流”类型的数据。
例子:
function download(){ var form=$("
总结
以上就是SpringMVC+Ajax实现文件批量上传和下载功能实例代码的详细内容,更多请关注易知道|edz.cc其它相关文章!