java 上传文件和批量下载文件(转载)
2013-02-20 20:10
309 查看
首先是文件上传部分,项目的要求是通用性较好,所以只需要传入目标路径即可。参数的传递通过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<FileItem> 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 }
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<FileItem> 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 }
相关文章推荐
- 【Java】 java上传文件跟批量下载文件
- java上传文件跟批量下载文件
- java上传文件跟批量下载文件(转)
- java上传文件跟批量下载文件
- JAVA SFTP文件上传、下载及批量下载实例
- java上传文件跟批量下载文件
- JAVA上传批量下载文件
- JAVA SFTP文件上传、下载及批量下载
- JAVA Web 之 struts2文件上传下载演示(二)(转)
- Portal-Basic Java Web 应用开发框架:应用篇(四) —— 文件上传和下载
- JavaWeb——文件上传和下载
- java通过ftp上传、下载文件,遍历文件目录
- JSch:纯JAVA实现SFTP文件上传和下载
- Java中实现FTP文件上传下载 涉及中文路径以及中文文件
- 用Java实现FTP批量大文件上传下载(一)
- C#文件上传和下载--转载
- JAVA中文件上传下载知识点整理
- java上传、下载、删除ftp文件
- Java通过FTP服务器上传下载文件的方法
- 用java在web环境下上传和下载文件的技巧