文件上傳

在Servlet3.0中就無需配置XML的文件
代碼:

import java.io.IOException;
import java.io.PrintWriter;

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;

import org.apache.catalina.core.ApplicationPart;

/**
 * Servlet implementation class UploadServlet
 */
@WebServlet("/UploadServlet")
@MultipartConfig(location = "d:/temp")
public class UploadServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * 構造方法
     */
    public UploadServlet() {
        super();
    }
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=GBK");
        PrintWriter out = response.getWriter();
        String path = this.getServletContext().getRealPath("/");    //獲取服務器地址
        Part p = request.getPart("file1");                      //獲取用戶選擇的上傳文件   
        if (p.getContentType().contains("image")) {         // 僅處理上傳的圖像文件
            ApplicationPart ap = (ApplicationPart) p;
            String fname1 = ap.getSubmittedFileName();              //獲取上傳文件名
            int path_idx = fname1.lastIndexOf("\\") + 1;        //對上傳文件名進行截取
            String fname2 = fname1.substring(path_idx, fname1.length());    
            p.write(path + "/upload/" + fname2);                // 寫入 web 項目根路徑下的upload文件夾中
            out.write("文件上傳成功");                            
        }
        else{
              out.write("請選擇圖片文件!!!");
        }
    }

}

index.jsp

<%@ page language="java" contentType="text/html; charset=GBK"
    pageEncoding="GBK"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="GBK" />
<title>應用Servlet實現文件上傳</title>
</head>
<body>
<form action="UploadServlet" enctype="multipart/form-data" method ="post" >
    選擇文件<input type="file" name="file1" id= "file1"/>   
    <input type="submit" name="upload" value="上傳" />
 </form>
</body>
</html>

最後說一下哦,D盤要新建一個temp的文件夾,要不然缺乏中間路勁會報錯哦

發佈了36 篇原創文章 · 獲贊 51 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章