下載文件:
//通過路徑得到一個輸入流 String path = "獲取需要下載的文件路徑"; //path.lastIndexOf(".")+1可以獲取文件后綴名字 如:doc等 //this.getServletContext().getRealPath("");可以訪問當前服務器地址 String fileName="保存文件的名稱" ; //設置保存文件的亂碼問題 String encodedfileName = null; String agent = request.getHeader("USER-AGENT"); if(null != agent && -1 != agent.indexOf("MSIE")){//IE encodedfileName = java.net.URLEncoder.encode(fileName,"UTF-8"); }else if(null != agent && -1 != agent.indexOf("Mozilla")){ encodedfileName = new String (fileName.getBytes("UTF-8"),"iso-8859-1"); }else{ encodedfileName = java.net.URLEncoder.encode(fileName,"UTF-8"); } //設置響應格式 response.setHeader("content-disposition", "attachment;filename=encodedfileName); //輸入流,獲得文件的字節流 InputStream is=new FileInputStream(path);//path是下載文件的路徑 byte[] bytes=new byte[is.available()]; is.read(bytes); //將字節流寫入response中 response.getOutputStream().write(bytes); is.close(); response.flushBuffer(); response.getOutputStream().flush();
上傳文件:
//設置上傳的路徑 String savePath=this.getServletConfig().getServletContext().getRealPath(""); File file=new File(savePath); //判斷是否存在 不存在就創建 if(!file.exists()){ file.mkdirs(); } DiskFileItemFactory fac=new DiskFileItemFactory(); ServletFileUpload upload=new ServletFileUpload(fac); upload.setHeaderEncoding("utf-8"); List<FileItem> filelist=null; try { filelist=upload.parseRequest(request); } catch (FileUploadException e) { // TODO Auto-generated catch block return; } Iterator<FileItem> it=filelist.iterator(); String name=""; String extName=""; while(it.hasNext()){ FileItem item=it.next(); if(!item.isFormField()){ name=item.getName(); long size=item.getSize(); String type=item.getContentType(); //判斷是否為空 if(name==null||name.trim().equals("")){ continue; } if(name.lastIndexOf(".")>=0){ extName=name.substring(name.lastIndexOf(".")); } File files=null; name=id; files=new File(savePath+name+extName); try { item.write(files); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }
response.getWriter().print("上傳成功"); }
需要兩個包:
commons-io-1.4.jar
commons-fileupload-1.2.1.jar
下載地址:https://github.com/weibanggang/iofilego
希望能夠幫助大家,有問題請留言,感謝!