前一段时间做项目,客户的需求是能选择文件夹,然后上传文件夹下的所有文件,当时找了好久,都没有找到,什么多文件上传插件啊,通通使用了一遍还是不行
偶然的一次查找中找到了一篇文章,是关于chrome的(目前也只支持chrome),代码如下
有了这段代码就可以选择文件夹,从而选择其下所有文件了(只找文件,多重文件过滤,只取其内部文件)
下面是java代码
spring配置
ok,完毕,希望能帮助更多的人!
转载请注明出处,否则视为抄袭
偶然的一次查找中找到了一篇文章,是关于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;
@Controller
public 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,完毕,希望能帮助更多的人!
转载请注明出处,否则视为抄袭
本文介绍了一种通过Chrome实现的功能,允许用户选择文件夹并上传该文件夹下的所有文件。提供了HTML代码片段及Java实现示例,便于开发者理解和应用。
681

被折叠的 条评论
为什么被折叠?



