【Java】Servlet文件上傳-無需導入其他Jar包


Servlet3.0中,改進了部分API,簡化了Java Web的開發。

如,文件上傳。傳統的文件上傳需要借助於common-fileupload等工具,很復雜,借助Servlet3.0的API則極為簡單。

上傳頁面upload.jsp/upload.html

    <form method="post" action="upload" enctype="multipart/form-data">
        選擇文件:<input type="file" id="file" name="file"><br>
        <input type="submit" value="提交">
    </form>

處理上傳的Servlet

// Servlet3.0 相當於配置web.xml
@WebServlet(name="Upload",urlPatterns={"/upload"})
// 文件上傳的注解
@MultipartConfig
public class Upload extends HttpServlet {
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
            // 解決中文亂碼
            response.setContentType("text/html;charset=utf-8");
            request.setCharacterEncoding("utf-8");
            PrintWriter out = response.getWriter();
            File path = new File("D://tmp");
            if (!path.exists()){
                path.mkdir();
            }
            Part part = request.getPart("file");
            out.println("size:"+part.getSize()+"<br>");
            // tomcat7 下需要下面的方法獲取文件名
            String cd = part.getHeader("Content-Disposition");
            //截取不同類型的文件需要自行判斷
            String filename = cd.substring(cd.lastIndexOf("=")+2, cd.length()-1);
            // Tomcat8以上只需要 part.getSubmittedFileName() 方法可以直接獲取
//            將文件上傳到服務器
            String filePath = path.getPath() + File.separator + filename;
            part.write(filePath);
            System.out.println("File Upload : " + filePath);
    }

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM