Java文件上傳(基礎性)


/**
 * 
 * 上傳文件
 *
 */
public class FileUploadServlet2 extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        try {
            // 1.創建磁盤文件項工廠----這里的temp為臨時文件目錄
            String path_temp = this.getServletContext().getRealPath("temp");
            DiskFileItemFactory factory = new DiskFileItemFactory(1024 * 1024, new File(path_temp));
            // 2.創建文件上傳的核心類
            ServletFileUpload upload = new ServletFileUpload(factory);
            // 設置上傳文件名的編碼----以防文件名亂碼
            upload.setHeaderEncoding("utf-8");
            // ServletFileUpload的API
            boolean multipartContent = upload.isMultipartContent(request);// 判斷表單是否是文件上傳的表單
            if (multipartContent) {
                // 是文件上傳的表單
                // **解析request獲得文件項集合
                List<FileItem> parseRequest = upload.parseRequest(request);
                if (parseRequest!=null) {
                    for (FileItem item : parseRequest) {
                        //判斷是不是一個普通表單項
                        boolean formField = item.isFormField();
                        if (formField) {
                            //普通表單項
                            String fieldName = item.getFieldName();
                            String fieldValue = item.getString("UTF-8");//對普通表單項的內容編碼
                        } else {
                            //獲取文件名
                            String fileName = item.getName();
                            //得到輸入流
                            InputStream in = item.getInputStream();
                            //獲取文件存放路徑
                            String path = this.getServletContext().getRealPath("upload");
                            //將文件存入相應目錄
                            OutputStream out = new FileOutputStream(path+"/"+fileName);
                            IOUtils.copy(in, out);
                            in.close();
                            out.close();
                            //最后刪除temp目錄下的臨時文件、
                            item.delete();
                        }
                    }
                }
            } else {
                // 非文件上傳表單,用原始獲取方式request.getParameter("表單name");
            }
        } catch (FileUploadException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }

 


免責聲明!

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



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