servlet 上传文件
原文:http://zhidao.baidu.com/question/263826186.html
?
public String uploadFile(HttpServletRequest request){try {DiskFileItemFactory factory= new DiskFileItemFactory();ServletFileUpload upload= new ServletFileUpload(factory);List<FileItem> list = upload.parseRequest(request);String encoding=request.getCharacterEncoding();upload.setHeaderEncoding(encoding);upload.setFileSizeMax(fileMaxSize);for(FileItem fileItem : list){String fileName = fileItem.getFieldName();if(fileItem.isFormField()){if("send".equals(fileName)){ edto.setSend(fileItem.getString(encoding));}if("incept".equals(fileName)){edto.setIncept(fileItem.getString(encoding));}if("theme".equals(fileName)){edto.setTheme(fileItem.getString(encoding));}if("letter".equals(fileName)){edto.setLetter(fileItem.getString(encoding));}}else{if("file".equals(fileName)){String sourceFilePath = fileItem.getName();if(sourceFilePath!=""){if(fileItem.getSize()>fileMaxSize){return "文件过大,不能上传!";}HttpSession session =request.getSession();String serverPath = session.getServletContext().getRealPath("");String savePath = serverPath + "\\userfile";String saveFileName =GetSaveFileName.getFileName(edto.getIncept(),edto.getSend(),sourceFilePath);InputStream in = fileItem.getInputStream();edto.setSaveFileName(saveFileName);this.saveFile(savePath,saveFileName, in);}}}}保存上传的文件到服务器://保存文件到服务器private void saveFile(String savePath,String saveFileName,InputStream in) throws IOException{File file=new File(savePath);if(!file.exists()){file.mkdirs();}FileOutputStream out =new FileOutputStream(savePath+"\"+saveFileName);byte [] b =new byte[1024];int len = in.read(b); while(len!=-1){out.write(b, 0, len);out.flush();len = in.read(b);} out.close(); in.close();}?
?
?