servlet3的文件上傳

轉自: http://blog.csdn.net/jackfrued/article/details/44931137html

 

上傳頁面java

<%@ page pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Photo Upload</title>
</head>
<body>
<h1>Select your photo and upload</h1>
<hr/>
<div style="color:red;font-size:14px;">${hint}</div>
<form action="UploadServlet" method="post" enctype="multipart/form-data">
    Photo file: <input type="file" name="photo" />
    <input type="submit" value="Upload" />
</form>
</body>
</html>

支持上傳的Servlet:jsp

package com.jackfrued.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
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;

@WebServlet("/UploadServlet")
@MultipartConfig
public class UploadServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        // 能夠用request.getPart()方法得到名爲photo的上傳附件
        // 也能夠用request.getParts()得到全部上傳附件(多文件上傳)
        // 而後經過循環分別處理每個上傳的文件
        Part part = request.getPart("photo");
        if (part != null && part.getSubmittedFileName().length() > 0) {
            // 用ServletContext對象的getRealPath()方法得到上傳文件夾的絕對路徑
            String savePath = request.getServletContext().getRealPath("/upload");
            // Servlet 3.1規範中能夠用Part對象的getSubmittedFileName()方法得到上傳的文件名
            // 更好的作法是爲上傳的文件進行重命名(避免同名文件的相互覆蓋)
            part.write(savePath + "/" + part.getSubmittedFileName());
            request.setAttribute("hint", "Upload Successfully!");
        } else {
            request.setAttribute("hint", "Upload failed!");
        }
        // 跳轉回到上傳頁面
        request.getRequestDispatcher("index.jsp").forward(request, response);
    }
}
相關文章
相關標籤/搜索