Servlet 文件上传

来源:互联网 发布:网络教育本科第二学位 编辑:程序博客网 时间:2024/06/01 11:36

 代码:

index.html

<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>文件上传</title></head><body>  <form method="POST" action="FileUploadServlet" enctype="multipart/form-data">       选择上传文件  <input type="file" name="file" id="file"/><br/><br/>  <input type="submit" value="上传" name="upload" id="upload"/>  </form></body></html>

FileUploadServlet.java

package com.upload;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.io.PrintWriter;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.Part;public class FileUploadServlet extends HttpServlet {private static final long serialVersionUID = 1L;           public FileUploadServlet() {        super();    }        protected void processRequest(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException    {    response.setContentType("text/html;charset=UTF-8");    request.setCharacterEncoding("UTF-8");        ServletContext servletContext=this.getServletContext();    String realPath=servletContext.getRealPath("/upload");    final Part filePart=request.getPart("file");    final String fileName =getFileName(filePart);        OutputStream out=null;    InputStream filecontent=null;        final PrintWriter writer=response.getWriter();        try {out=new FileOutputStream(new File(realPath+File.separator+fileName));filecontent =filePart.getInputStream();int read;final byte[]bytes=new byte[1024];while((read=filecontent.read(bytes))!=-1){out.write(bytes, 0, read);}writer.println("上传文件"+fileName+"到路径"+realPath);} catch (FileNotFoundException fne) {// TODO Auto-generated catch blockwriter.println("没有指定上传文件或上传目的路径错误");writer.println("<br/>错误:"+fne.getMessage());}        finally {if(out!=null){out.close();}if(filecontent!=null){filecontent.close();}if(writer!=null){writer.close();}}        }private String getFileName(Part Part) {// TODO Auto-generated method stubfor(String content : Part.getHeader("content-disposition").split(".")){if(content.trim().startsWith("filename")){String filename=content.substring(content.lastIndexOf('\\')+1).trim().replace("\"", "");return filename;}}return null;}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-enerated method stubresponse.getWriter().append("Served at: ").append(request.getContextPath());}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubdoGet(request, response);}}

运行截图:




0 0