【浏览器选择文件夹】springMVC上传篇

来源:互联网 发布:提现棋牌源码 编辑:程序博客网 时间:2024/06/05 22:01
前一段时间做项目,客户的需求是能选择文件夹,然后上传文件夹下的所有文件,当时找了好久,都没有找到,什么多文件上传插件啊,通通使用了一遍还是不行
偶然的一次查找中找到了一篇文章,是关于chrome的(目前也只支持chrome),代码如下
<form id="queryForm" name="queryForm" action="" method="post" enctype="multipart/form-data"><input type='file' name="file" webkitdirectory ><input type="submit" value="提交" /></form>

有了这段代码就可以选择文件夹,从而选择其下所有文件了(只找文件,多重文件过滤,只取其内部文件)
下面是java代码
package com.cniia.ny.web.control.znfx;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.io.UnsupportedEncodingException;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.commons.fileupload.FileItem;import org.apache.commons.fileupload.FileUploadException;import org.apache.commons.fileupload.disk.DiskFileItemFactory;import org.apache.commons.fileupload.servlet.ServletFileUpload;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.multipart.MultipartFile;import org.springframework.web.multipart.MultipartHttpServletRequest;import org.springframework.web.servlet.ModelAndView;import com.cniia.common.util.StrUtil;import com.cniia.common.util.dao.PageList;import com.cniia.ny.web.domain.User;import com.cniia.ny.web.util.WebConst;import com.cniia.ny.web.util.WebUtil;import com.google.gson.JsonObject;@Controllerpublic class TestFTP{/** * 获取数据魔方信息 * @param req * @author 袁洪军 * @throws IOException  * @throws ServletException  * @throws Exception  * @date 2015.03.02 */@RequestMapping(value = "znfx/ftp")public ModelAndView queryDataCubeContent(HttpServletRequest req,HttpServletResponse res) {JsonObject js = WebUtil.getFormReq2Gson(req);@SuppressWarnings("deprecation")//String path = req.getRealPath("/upload");//你需要上传的路径String path = "D:/test";MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) req; List<MultipartFile> files = multipartRequest.getFiles("file"); for (MultipartFile multipartFile : files) { try {String fileName = multipartFile.getOriginalFilename(); OutputStream out = new FileOutputStream(new File(path,fileName)); InputStream in = multipartFile.getInputStream() ; int length = 0 ;//定义每次读取用来临时保存数据的数组byte [] buf = new byte[1024] ;System.out.println("获取上传文件的总共的容量:"+multipartFile.getSize());// in.read(buf) 每次读到的数据存放在   buf 数组中while( (length = in.read(buf) ) != -1){//在   buf 数组中 取出数据 写到 (输出流)磁盘上out.write(buf, 0, length);}//关闭输入流in.close();//关闭输出流out.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}return new ModelAndView("/znfx/ftp");}}

spring配置
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><property name="maxUploadSize" value="10000000000000000" /></bean>

ok,完毕,希望能帮助更多的人!
转载请注明出处,否则视为抄袭
0 0