java批量文件下载_java 上传文件和批量下载文件(转载)

本文介绍了如何在Web应用中通过ServletFileUpload实现文件上传,包括设置缓存策略、解析请求、处理中文文件名,并演示了如何将文件流写入指定目标路径。适合处理文档类文件上传,提及了使用FTP传输大文件的情况。
摘要由CSDN通过智能技术生成

首先是文件上传部分,项目的要求是通用性较好,所以只需要传入目标路径即可。参数的传递通过Form表单传值,在目标路径下新建一个File类型的文件,然后通过流的方式将需要上传的文件写入新建的文件中。此方法适用于web开发过程中上传文档类的文件,如果你文件过大请研究ftp相关的知识,笔者所接触的ftp传文件限于C#中,这里不做表述。具体代码如下:

1 public void fileUpload(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException

2 {

3 String filePath = new String();

4 request.setCharacterEncoding("UTF-8");

5 response.setContentType("text/html; charset=GB2312");

6 try

7 {

8 DiskFileItemFactory factory = new DiskFileItemFactory();

9 //设置缓存中最大允许缓存为2M

10 factory.setSizeThreshold(2 * 1024 * 1024);

11 ServletFileUpload upload = new ServletFileUpload(factory);

12 //解决中文文件名为乱码的问题

13 upload.setHeaderEncoding("UTF-8");

14 List fileList = upload.parseRequest(request);

15 Iterator iter = fileList.iterator();

16 String newFileName = "";

17 while (iter.hasNext())

18 {

19 //获取文件

20 FileItem fileItem = (FileItem)iter.next();

21 //获取文件上传的路径

22 String typeName = fileItem.getFieldName();

23 if(("destPath".equals(typeName))

24 {

25 filePath = fileItem.getString("utf-8";

26 }

27 if(("filename".equals(typeName))

28 {

29 newFileName = fileItem.getString("utf-8";

30 }

31 String fileName = new String();

32 if (!fileItem.isFormField())

33 {

34 String name = fileItem.getName();

35 if(StringUtil.isNullOrEmpty(name))

36 {

37 continue;

38 }

39 fileName = name;

40 fileName = fileName.substring(fileName.lastIndexOf("\\" + 1);

41 File file = new File(filePath);

42 if(!file.exists())

43 {

44 file.mkdirs();

45 }

46 //向指定的路径写文件

47 if(newFileName.length()>0)

48 {

49 fileName = newFileName;

50 }

51 fileItem.write(new File(filePath, fileName));

52 }

53 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值