网站首页 > java教程 正文
这次的项目是接着上篇文章,此次讲解的是用JavaEE实现前后台交互的文件上传与下载。
此次项目涉及到的相关技术:service方法中的两个重要参数(ServletRequest和ServletResponse)
ServletRequest – 用接收用户的请求,它的作用是:
1.可获取请求头信息。
2.可设置请请求的字符编码。
3.可获得用户传递的参数。Post或get。
4.可获取远程(即访问者)的IP地址。
5.可获取输入流,如用户上传文件、相片等。
它的一个子接口:javax.servlet.http.HttpServletRequest
ServletResponse – 用于向用户返回数据,它的作用是:
1.设置响应类型- contentType
2.设置编码-setCharacterEncoding
3.获取输出流。
它的一个子接口:javax.servlet.http.HttpServletResponse
文件下载技术:文件下载技术相当于文件上传技术相对而言比较简单。我们以下载图片为例:图片都是先浏览再下载
1.前端代码:通过web.xml查找后台的程序
2.后台显示代码:
小编整理了一份java学习资料,私信回复【01】,获取源码。
3.文件的具体下载
首先必须设置相应的协议。下载协议就需要设置相应的下载头
下载的时候需要显示当前图片的文件名,需要从前台获取,并且从下载获得之后写到前台去
进行具体的下载
效果图:
点击之后的效果图:
传文件名不一样
表单:
客户端发送HTTP必须使用multipart/form-data数据类型,表示复合数据类型。
即:<form enctype=“multipart/form-data”>
在表单中使用<input type=“file” name=“somename”/>html标签。
需要的包:
Commons-fileupload.jar,核心上传文件工具都在这个包中。
commons-io.jar – 上传文件所需要的包
详解:
DiskFileItemFactory-创建监时文件目录,指是缓存区大小
ServletFileUpload用于解析HttpServletRequest。返回一组文件对象。
FileItem – 表示用户上传的每一个文件对像。
主要流程:
File f = new File("F:/ex/temp");//指定临时文件存放位置
DiskFileItemFactory ff =new DiskFileItemFactory(1024*1024*5, f);//临时文件的大小和存放位置
ServletFileUpload sf =new ServletFileUpload(ff);
List list=sf.parseRequest(request);//开始解析
for(FileItem it:list){//获得文件名。以及用到uuid解决重名的问题
FileUtils.copyInputStreamToFile(it.getInputStream(), new File(path+"/"+filename));//写的指定的文件夹中
}
1、前台代码:
2、后台代码:
1.首先创建一个基于硬盘的工厂,用来存放临时文件
2.创建一个用ServletFileUpload对象,并且设置文件大小,最大允许传多大的文件
3.开始解析对象
//映射名String id=UUID.randomUUID().toString().replace("-", "");//全球唯一UUId来进行//文件名String lastname=name.substring(name.lastIndexOf("."));//文件格式//名字文件格式都找到了---组合String filename =id+lastname;//新的文件名//拷贝流。让它写到相应位置FileUtils.copyInputStreamToFile(it.getInputStream(), new File(path+"/"+filename));//path为存储的绝对路径--之前定义的}
这样能实现简单的上传,但是,这种上传是没有一点安全行了。完整的代码中附上了防一般的小问题还是没问题的
选择文件之后
查看web服务器img里面的文件,文件已经上传到该页面《文件名为uuid生成的文件名》
文件上传源代码:
声明:本文内容来源于网络,如有侵权请联系删除
猜你喜欢
- 2024-10-21 Spring WEB工程整合使用FTP,ftp文本文件解析入库,文件上传下载
- 2024-10-21 使用SFTP跟服务器传输文件(怎么用sftp上传文件到服务器)
- 2024-10-21 Ubuntu 下安装 JDK17(ubuntu中安装jdk)
- 2024-10-21 JasperReport生成pdf文件 Java开发pdf文件 pdf文件生成及下载
- 2024-10-21 JAVA 大文件上传解决方案(500M以上)
- 2024-10-21 《数据结构与算法分析Java语言描述》PDF文件免费下载
- 2024-10-21 CDH安装系统环境准备——系统版本和安装包下载地址指南
- 2024-10-21 jar文件怎么打开(base.apk.1文件怎么打开)
- 2024-10-21 Java 实现 FastDFS 实现文件的上传、下载、删除
- 2024-10-21 如何免费下载百度文库中的文档?这个方法悄悄告诉你
你 发表评论:
欢迎- 07-21如何将 iPhone 中的联系人导出到 Excel/CSV?
- 07-21sql查询的字段数据中有逗号。放到csv文件会分开,如何解决?
- 07-21在 WebAPI 里生成 csv zip 文件(webapi怎么发布在iis上)
- 07-21如何把csv格式转换成Excel格式(csv格式怎么转换)
- 07-21如何将高程导出为XYZ或CSV高程点(如何将高程数据导入cad)
- 07-21使用python把csv汇总成excel(python怎么将csv文件中的列存入列表)
- 07-21解决PHP导出CSV文件中文乱码问题(php导出excel文件)
- 07-21使用vba将Excel 文件转成 CSV 文件
- 最近发表
-
- 如何将 iPhone 中的联系人导出到 Excel/CSV?
- sql查询的字段数据中有逗号。放到csv文件会分开,如何解决?
- 在 WebAPI 里生成 csv zip 文件(webapi怎么发布在iis上)
- 如何把csv格式转换成Excel格式(csv格式怎么转换)
- 如何将高程导出为XYZ或CSV高程点(如何将高程数据导入cad)
- 使用python把csv汇总成excel(python怎么将csv文件中的列存入列表)
- 解决PHP导出CSV文件中文乱码问题(php导出excel文件)
- 使用vba将Excel 文件转成 CSV 文件
- python爬虫25 | 爬取的数据怎么保存?CSV了解一下
- MySQL 导出数据(mysql 导出数据 判断成功)
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)