html下载文件和上传文件(图片)(java后台(HttpServlet))打开保存路径和选择文件录取+(乱码UTF-8)+包...
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
希望能够帮助大家,有问题请留言,感谢!
html下载文件和上传文件(图片)(java后台(HttpServlet))打开保存路径和选择文件录取+(乱码UTF-8)+包...相关推荐
- MVCWebForm对照学习:文件上传(以图片为例)
MVC&WebForm对照学习:文件上传(以图片为例) 在web应用中,文件上传是个很普遍的功能,那么今天就来小结一下asp.net中文件上传的方式.首先我们快速来回忆一下WebForm中的文 ...
- javaweb实现文件上传,前端与后台的结合实现
大家好,这是原创的文件上传源码哦. 希望给大家带来参考价值. 阅读注意: 1.只给出了关键代码(但是绝大部分代码),需要自己小小润色一下. 2.代码分为前端与后台, 3.本人初学者,有错,望您指出. ...
- 轻松搞定阿里OSS文件上传和图片下载
轻松搞定阿里OSS文件上传和图片下载 目录 1. 阿里云oss账号准备 1.1 注册阿里云账号,并开通OSS存储服务 1.2 创建RAM子用户并使用子账户的AccessKeyId和Access ...
- 【TFTP客户端--实现下载文件和上传文件】
TFTP客户端--实现下载文件和上传文件 TFTP协议 文件下载 文件上传 main TFTP协议 TFTP是一个传输文件的简单协议,它其于UDP协议而实现,但是我们也不能确定有些TFTP协议是基于其 ...
- 【SpringBoot学习】5、SpringBoot 实现文件上传,图片上传并显示功能
SpringBoot 实现文件上传,图片上传并显示功能 我先看一下<颈椎病康复指南>再给大家说怎么实现的这两个功能,毕竟只是一个新手,解决这种复杂点的问题(相对而言),还是需要花费大量时间 ...
- 上传阿里云oss对象型存储 本地文件和上传流上传
上传阿里云oss对象型存储 本地文件和上传流上传 import java.io.ByteArrayInputStream; import java.io.File; import java.io.Fi ...
- php多图片上传程序,php多文件上传 多图片上传程序代码
多文件上传其实就包括了图片及各种文件了,下面介绍的是一款PHP多文件上传类,一共两个文件,upp.php 和 uploadFile.php,upp.php,这是前台所显示的表单文件了,默认的是四个上传 ...
- Android webview支持H5页面通过js实现文件上传、图片上传
一.问题场景: 项目中遇到通过网页上传文件的需求,IOS直接是支持的,安卓端却没反应,有些机型甚至闪退.其实是Android的webview默认是不支持<input type="fil ...
- 文件上传之图片上传题目
[A]文件上传之图片上传题目 Give me your photo PLZ 提示 我好想看一些好康的图片呜呜 题目 .htaccess是Apache的又一特色.一般来说,配置文件的作用范围都是全局的, ...
- java实现文件上传预览_jsp+springmvc实现文件上传、图片上传和及时预览图片
1.多文件上传:http://blog.csdn.net/a1314517love/article/details/24183273 2.单文件上传的简单示例:http://blog.csdn.net ...
最新文章
- CNN----卷积为何能提取图像特征
- python基础教程学习笔记十二
- PostgreSQL的德哥教程
- R: ggplot2(1)
- 网易云出现undefined symbol: fribidi_get_par_embedding_levels_ex
- Qt工作笔记-profile中INSTALLS的使用
- 速成pytorch学习——5天nn.functional 和 nn.Module
- 力扣题目——1249. 移除无效的括号
- python-Python教程
- vs2010编译curl为static库及测试
- 计算出 3 至 1000 范围内最大的十个素数,放入数组中,并计算出其累加和。
- linux snap文件夹,在Linux下使用Snap安装Rambox的方法
- 我的世界自定义脚本生成器易语言源码
- 区块链技术视频网站EthCast.com上线
- 微信小程序 canvas API
- vs2017c语言运行库,microsoft visual c++ 2017运行库下载-microsoft visual c++ 2017运行库32位64位下载官方版-西西软件下载...
- 炫龙银魂t1配置_炫龙银魂T1,不一样的外观一样的强悍
- Java桌面截图程序(带快捷键)
- 分享一个网易云会员包项目刷下载量的脚本
- SpringDataJPA入门
热门文章
- Python实现蒙特卡罗方法仿真模拟求解圆周率Pi值
- vs2017+pcl1.8.1配置
- 正则化、岭回归与LASSO回归(套索回归)
- java中struts2框架,概述Java的struts2框架
- 计算机课程联合考试是什么意思,计算机技术在职研究生能否通过一月联考的方式学习课程内容...
- 三星note3 android4.3,真的8核全开了!Exynos版GS4升级安卓4.3
- c++ 协程_深入理解异步I/O+epoll+协程
- go项目新增一个代码文件
- pp什么叫php的事务,ThinkPHP5.0框架事务处理操作简单示例
- java多线程-线程安全