本地文件上傳到服務器


表單:

 

<form action="A" method="post" enctype="multipart/form-data"> <!-- 是上傳表單 -->
    用戶名:<input type="text" name="username"><br/>
    文件:<input type="file" name="file1"><br/>
    <input type="submit" value="提交">
 </form>

 

Servlet:

 

public class Servlet extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //1.創建文件上傳工廠類
        DiskFileItemFactory fac = new DiskFileItemFactory();
        //2.創建文件上傳核心類
        ServletFileUpload upload = new ServletFileUpload(fac);
        //[設置單個文件最大上傳大小:30M]
        upload.setFileSizeMax(30*1024*1024);
        //[設置總的文件最大上傳大小:50M]
        upload.setSizeMax(50*1024*1024);

        //判斷表單是否為文件上傳表單
        if(upload.isMultipartContent(request)){
            //3.把請求數據轉換為FileItem對象集合
            try {
                List<FileItem> items = upload.parseRequest(request);
                //遍歷每一個上傳項
                for(FileItem item:items){
                    //再判斷是普通表單還是文件上傳表單
                    if(item.isFormField()){
                        //普通表單
                        System.out.println("普通表單");
                        //獲取元素名稱
                        String fileName = item.getFieldName();
                        //獲取文本框的值
                        String value = item.getString("UTF-8");
                        System.out.println(fileName+":"+value);

                    }else{
                        //處理文件上傳

                        //獲取上傳文件的名字
                        String name = item.getName();
                        System.out.println(name);
                        //獲取上傳的目錄路徑,指定文件存儲路徑
                        String basePath = "G:/IntelliJ IDEA 2018.2.4/DynamicWeb/src/";  /*絕對路徑,存放到服務器中的路徑*/
                        //創建文件對象
                        File file = new File(basePath,name);
                        try {
                            item.write(file);
                        } catch (Exception e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }//寫文件
                        item.delete();//刪除臨時文件
                    }
                }
            } catch (FileUploadException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }else{
        System.out.println("文件上傳異常,不處理!");
    }

    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        this.doGet(request, response);
    }
}

 

將表單提交到Servlet后,即可實現本地文件上傳至指定的服務器目錄。

 


免責聲明!

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



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