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

希望能够帮助大家,有问题请留言,感谢!

posted @ 2018-07-21 20:25 韦邦杠 阅读(...) 评论(...) 编辑 收藏

html下载文件和上传文件(图片)(java后台(HttpServlet))打开保存路径和选择文件录取+(乱码UTF-8)+包...相关推荐

  1. MVCWebForm对照学习:文件上传(以图片为例)

    MVC&WebForm对照学习:文件上传(以图片为例) 在web应用中,文件上传是个很普遍的功能,那么今天就来小结一下asp.net中文件上传的方式.首先我们快速来回忆一下WebForm中的文 ...

  2. javaweb实现文件上传,前端与后台的结合实现

    大家好,这是原创的文件上传源码哦. 希望给大家带来参考价值. 阅读注意: 1.只给出了关键代码(但是绝大部分代码),需要自己小小润色一下. 2.代码分为前端与后台, 3.本人初学者,有错,望您指出. ...

  3. 轻松搞定阿里OSS文件上传和图片下载

    轻松搞定阿里OSS文件上传和图片下载 目录 1. 阿里云oss账号准备   1.1 注册阿里云账号,并开通OSS存储服务   1.2 创建RAM子用户并使用子账户的AccessKeyId和Access ...

  4. 【TFTP客户端--实现下载文件和上传文件】

    TFTP客户端--实现下载文件和上传文件 TFTP协议 文件下载 文件上传 main TFTP协议 TFTP是一个传输文件的简单协议,它其于UDP协议而实现,但是我们也不能确定有些TFTP协议是基于其 ...

  5. 【SpringBoot学习】5、SpringBoot 实现文件上传,图片上传并显示功能

    SpringBoot 实现文件上传,图片上传并显示功能 我先看一下<颈椎病康复指南>再给大家说怎么实现的这两个功能,毕竟只是一个新手,解决这种复杂点的问题(相对而言),还是需要花费大量时间 ...

  6. 上传阿里云oss对象型存储 本地文件和上传流上传

    上传阿里云oss对象型存储 本地文件和上传流上传 import java.io.ByteArrayInputStream; import java.io.File; import java.io.Fi ...

  7. php多图片上传程序,php多文件上传 多图片上传程序代码

    多文件上传其实就包括了图片及各种文件了,下面介绍的是一款PHP多文件上传类,一共两个文件,upp.php 和 uploadFile.php,upp.php,这是前台所显示的表单文件了,默认的是四个上传 ...

  8. Android webview支持H5页面通过js实现文件上传、图片上传

    一.问题场景: 项目中遇到通过网页上传文件的需求,IOS直接是支持的,安卓端却没反应,有些机型甚至闪退.其实是Android的webview默认是不支持<input type="fil ...

  9. 文件上传之图片上传题目

    [A]文件上传之图片上传题目 Give me your photo PLZ 提示 我好想看一些好康的图片呜呜 题目 .htaccess是Apache的又一特色.一般来说,配置文件的作用范围都是全局的, ...

  10. java实现文件上传预览_jsp+springmvc实现文件上传、图片上传和及时预览图片

    1.多文件上传:http://blog.csdn.net/a1314517love/article/details/24183273 2.单文件上传的简单示例:http://blog.csdn.net ...

最新文章

  1. CNN----卷积为何能提取图像特征
  2. python基础教程学习笔记十二
  3. PostgreSQL的德哥教程
  4. R: ggplot2(1)
  5. 网易云出现undefined symbol: fribidi_get_par_embedding_levels_ex
  6. Qt工作笔记-profile中INSTALLS的使用
  7. 速成pytorch学习——5天nn.functional 和 nn.Module
  8. 力扣题目——1249. 移除无效的括号
  9. python-Python教程
  10. vs2010编译curl为static库及测试
  11. 计算出 3 至 1000 范围内最大的十个素数,放入数组中,并计算出其累加和。
  12. linux snap文件夹,在Linux下使用Snap安装Rambox的方法
  13. 我的世界自定义脚本生成器易语言源码
  14. 区块链技术视频网站EthCast.com上线
  15. 微信小程序 canvas API
  16. vs2017c语言运行库,microsoft visual c++ 2017运行库下载-microsoft visual c++ 2017运行库32位64位下载官方版-西西软件下载...
  17. 炫龙银魂t1配置_炫龙银魂T1,不一样的外观一样的强悍
  18. Java桌面截图程序(带快捷键)
  19. 分享一个网易云会员包项目刷下载量的脚本
  20. SpringDataJPA入门

热门文章

  1. Python实现蒙特卡罗方法仿真模拟求解圆周率Pi值
  2. vs2017+pcl1.8.1配置
  3. 正则化、岭回归与LASSO回归(套索回归)
  4. java中struts2框架,概述Java的struts2框架
  5. 计算机课程联合考试是什么意思,计算机技术在职研究生能否通过一月联考的方式学习课程内容...
  6. 三星note3 android4.3,真的8核全开了!Exynos版GS4升级安卓4.3
  7. c++ 协程_深入理解异步I/O+epoll+协程
  8. go项目新增一个代码文件
  9. pp什么叫php的事务,ThinkPHP5.0框架事务处理操作简单示例
  10. java多线程-线程安全