1. 程式人生 > >檔案上傳,檔案損壞

檔案上傳,檔案損壞

<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);
	}