下載文件:
//通過路徑得到一個輸入流 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
希望能夠幫助大家,有問題請留言,感謝!
