檔案上傳,檔案損壞
阿新 • • 發佈:2019-01-09
<span style="font-size:14px;">檔案上傳程式碼</span>:
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { DiskFileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); if(!upload.isMultipartContent(request)){ // } List<FileItem> items = upload.parseRequest(request); for(FileItem item:items){ if(item.isFormField()){ String fieldName = item.getFieldName(); String fieldValue = item.getString(); System.out.println("name---"+fieldName+"--value---"+fieldValue); }else{ InputStream in = item.getInputStream(); String path = request.getServletContext().getRealPath("/WEB-INF/upload"); File file = new File(path,item.getName()); FileOutputStream out = new FileOutputStream(file); int len = 0; byte [] buffer = new byte[1024]; while((len=in.read(buffer))>0){//<span style="color:#ff0000;">如果這裡忘記寫buffer,可能會導致檔案損壞哦!!</span> out.write(buffer,0,len); } in.close(); out.close(); item.delete(); } } request.setAttribute("message", "檔案上傳成功!!!"); } catch (Exception e) { e.printStackTrace(); request.setAttribute("message", "檔案上傳失敗!!!"); } request.getRequestDispatcher("/message.jsp").forward(request,response); }