FileUpload下载地址:
http://commons.apache.org/fileupload/
下载:commons-fileupload-1.2.2-bin.zip 得到:commons-fileupload-1.2.2.jar
http://commons.apache.org/io/
下载:commons-io-1.4-bin.zip 得到:commons-io-1.4.jar
思路:
1.上传的文件通过http协议指定格式传输到后台
method="post" action="upload.action" enctype="multipart/form-data"
2.后台获取文件数据 (可以限制上传文件大小upload.setSizeMax())
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List<FileItem> items = upload.parseRequest(req);
3.在指定目录下创建相同名称的文件然后将数据内容写入
String path = request.getServletContetxt().getRealPath("upload").getPath()+"\"+
+item.getName().substring(item.getName().lastIndexOf("/")+1);
item.write(new File(path));
-
-
- <html>
- <form id="form" name="form" method="post" action="upload.action" enctype="multipart/form-data">
- <table >
- <tr>
- <td >
- <input type="file" style="font-size:14px" name="filename" />
- </td>
- </tr>
- <tr>
- <td >
- <input type="submit" style="font-size:14px" value="上传文件" />
- </td>
- </tr>
- </table>
- </form>
- </html>
- import java.io.File;
- import java.io.IOException;
- import java.io.PrintWriter;
- 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;
-
-
- public class UploadServlet extends HttpServlet {
-
- @Override
- protected void service(HttpServletRequest req, HttpServletResponse resp)
- throws ServletException, IOException {
-
- req.setCharacterEncoding("gbk");
- resp.setContentType("text/html;charset=gbk");
- PrintWriter out = resp.getWriter();
-
- DiskFileItemFactory factory = new DiskFileItemFactory();
-
- ServletFileUpload upload = new ServletFileUpload(factory);
- List<FileItem> items;
- try {
-
- items = upload.parseRequest(req);
- for(FileItem item : items){
-
- if(!item.isFormField()) {
-
- String filename = item.getName();
-
-
- filename = filename.substring(filename.lastIndexOf("\\")+1);
-
-
- File file = new File(req.getServletContext().getRealPath("uploads")+File.separator+filename);
-
- item.write(file);
- out.print("<html><center >上传成功,3秒后跳转!</center></html>");
- return ;
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- out.print("<html><center>上传失败!</center></html>");
-
- }
- }
web.xml
- web.xml
- <servlet>
- <servlet-name>upload</servlet-name>
- <servlet-class>cn.lh.web.UploadServlet</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>upload</servlet-name>
- <url-pattern>/upload.action</url-pattern>
- </servlet-mapping>