html下載文件和上傳文件(圖片)(java后台(HttpServlet))打開保存路徑和選擇文件錄取+(亂碼UTF-8)+包


下載文件:

//通過路徑得到一個輸入流

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

 

希望能夠幫助大家,有問題請留言,感謝!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM