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
希望能够帮助大家,有问题请留言,感谢!
浙公网安备 33010602011771号