el-upload payload格式文件上傳 原

後臺(java)接收,先用二進制流打印出來

InPutStream is = request.getInputStream();  
StringBuilder sb = new StringBuilder();
byte[] bytes = new byte[1024];  
int b= 0;
if((b=is.read())!=-1){
  sb.add(b);
}
System.out.print(b);

          

 

循環打印  一堆亂碼和首位兩段英文,可以獲知 文件的分隔是根據 那一行英文來分隔的,中間那堆亂碼就是二進制文件。

那麼只要把 那幾句英文幹掉  替換出文件的字節流即可寫到本地。

看看博客 嗯 FileUpload就有直接可以使用的方法

使用multipart/form-data提交的數據使用HttpServletRequest對象的getParameter()等方法無法讀取。

HttpServletRequeest request=....
if(ServletFileUpload.isMultipartContent(request)) 
{
    FileItemFactory factory = new DiskFileItemFactory();
    ServletFileUpload upload = new ServletFileUpload(factory);
    List<FileItem> items = upload.parseRequest(request);
    for(FileItem i: items)
    {
        i.getFieldName();    //參數名
        //i.getString();     //參數值(返回字符串),如果是上傳文件,則爲文件內容
     //i.get();           //參數值(返回字節數組),如果是上傳文件,則爲文件內容
     //i.getSize();     //參數值的字節大小
     //i.getName();       //上傳文件的文件名
     //i.getContentType();  //上傳文件的內容類型
     if(!i.isFormField()&&i.getSize()>0)   //簡單參數返回true,文件返回false 
      Files.write(Paths.get("/upload/"+Paths.get(i.getName()).getFileName()), i.get());      
  }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章