您好,欢迎来到吉趣旅游网。
搜索
您的当前位置:首页FileUpload实现上传

FileUpload实现上传

来源:吉趣旅游网


1.创建一个Servlet----Upload.java文件,用于实现上传文件

import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*;

import org.apache.commons.fileupload.*;

public class Upload extends HttpServlet {

private String uploadPath = \"d:\\\d\\\\\"; // 上传文件的目录 private String tempPath = \"d:\\\d\\\mp\\\\\"; // 临时文件目录

在doPost()方法中,当servlet收到浏览器发出的Post请求后,实现文件上传。以下是示例代码:

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

final long MAX_SIZE = 3 * 1024 * 1024;// 设置上传文件最大为 3M response.setContentType(\"text/html\");

// 设置字符编码为UTF-8, 这样支持汉字显示 response.setCharacterEncoding(\"UTF-8\");

// 实例化一个硬盘文件工厂,用来配置上传组件ServletFileUpload DiskFileItemFactory dfif = new DiskFileItemFactory();

dfif.setSizeThreshold(4096);// 设置上传文件时用于临时存放文件的内存大小,这里是4K.多于的部分将临时存在硬盘

dfif.setRepository(new File(request.getRealPath(\"/\")

+ \"/WEB-INF/ImagesUploadTemp\"));// 设置存放临时文件的目录,web根目录下的ImagesUploadTemp目录

// 用以上工厂实例化上传组件

ServletFileUpload sfu = new ServletFileUpload(dfif); // 设置最大上传尺寸

sfu.setSizeMax(MAX_SIZE);

PrintWriter out = response.getWriter(); // 从request得到 所有 上传域的列表 List fileList = null; try {

fileList = sfu.parseRequest(request); } catch (Exception e) { e.printStackTrace();

}

// 得到所有上传的文件

Iterator fileItr = fileList.iterator(); // 循环处理所有文件 while (fileItr.hasNext()) { FileItem fileItem = null; String path = null; long size = 0; // 得到当前文件

fileItem = (FileItem) fileItr.next();

// 忽略简单form字段而不是上传域的文件域(等) if (fileItem == null || fileItem.isFormField()) { continue; }

// 得到文件的完整路径 path = fileItem.getName(); // 得到文件的大小 size = fileItem.getSize(); // 得到去除路径的文件名

String t_name = path.substring(path.lastIndexOf(\"\\\\\") + 1); // 得到文件的扩展名(无扩展名时将得到全名)

String t_ext = t_name.substring(t_name.lastIndexOf(\".\") + 1); long now = System.currentTimeMillis(); // 根据系统时间生成上传后保存的文件名 String prefix = String.valueOf(now);

// 保存的最终文件完整路径,保存在web根目录下的ImagesUploaded目录下 String u_name = request.getRealPath(\"/\")+\"/WEB-INF/upload/\" + prefix + \".\" + t_ext; try {

// 保存文件

fileItem.write(new File(u_name));

out.println(\"文件上传成功. 已保存为: \" + prefix + \".\" + t_ext + \"   文件大小: \" + size + \"字节

\"); } catch (Exception e) { e.printStackTrace(); } } }

编译该servlet,注意要指定classpath,确保包含commons-upload-1.0.jar和tomcat\\common\\lib\\servlet-api.jar。

2.配置servlet,用记事本打开tomcat\\webapps\\你的webapp\\WEB-INF\\web.xml,没有的话新建一个。

典型配置如下:

PUBLIC \"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN\" \"http://java.sun.com/dtd/web-app_2_3.dtd\">

Upload Upload

Upload /fileupload

3.配置好servlet后,启动tomcat,写一个简单的html测试:

enctype=\"multipart/form-data\" name=\"form1\">

注意action=\"fileupload\"其中fileupload是配置servlet时指定的url-pattern

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- jqkq.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务