Java Web——文件上传

来源:互联网 发布:kali linux渗透教程 编辑:程序博客网 时间:2024/06/04 01:07


给予Apache提供的两个Jar包

  commons-fileupload-1.3.1.jar

   commons-io-2.4.jar



package com.jabnih.Upload;import java.io.File;import java.io.IOException;import java.util.Iterator;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 FileUploadServlet extends HttpServlet {private int memSize = 4*1024;private int thresold = 1024*1024;public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {//判断表单中的enctype 是否为 multipart/form-dataif (!ServletFileUpload.isMultipartContent(request) ) {response.getWriter().println("no file to upload");return;}/*创建一个FileIterm工厂类*/DiskFileItemFactory factory = new DiskFileItemFactory();/*设置最大存在于内存文件的大小,超出这个范围将写到磁盘中*/factory.setSizeThreshold(memSize);/*设置存放临时文件的文件夹*/factory.setRepository(new File("F:\\"));//此类用于将request对象中的数据解析封装为FileItem类ServletFileUpload upload = new ServletFileUpload(factory);//设置接收文件的最大值upload.setFileSizeMax(thresold);try {/*解析表单提交的数据*/List<FileItem> items = upload.parseRequest(request);Iterator<FileItem> iterator = items.iterator();while( iterator.hasNext() ) {FileItem item = iterator.next();/*将表单中的数据写入到文件中*/item.write(new File("F:\\" + item.getName()));}response.getWriter().println("Upload successfully");}catch (Exception e) {e.printStackTrace();}}}

upload.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <title>My JSP 'upload.jsp' starting page</title>  </head>  <body>    <fieldset>    <legend>Upload</legend>    <%-- 注意: 一定要填写属性  enctype --%>    <form action="/MyDay01/upload" method="post" enctype="multipart/form-data">    <table>    <tr>    <td>    选择文件:    </td>    <td><input type="file" name="upload"/></td>    </tr>    <tr>     <td colspan="2"><input type="submit" value="上传"/></td>    </tr>    </table>    </form>    </fieldset>  </body></html>



0 0