文件的上传与下载是一个Web应用程序的常见模块。
通过文件上传可以将资源传到服务器上保存或供大家共享;通过文件下载可将网络上的资源保存到本地离线查看。
1、常见文件上传下载组件
使用Java技术实现文件上传下载,需要借助于输入输出流类实现,比较复杂。而借助于一些上传下载组件来实现则非常简单,而且效率比较高。
常见的上传下载组件有FileUpload、jspSmartUpload、Cos等,在这里我选择使用Cos组件来实现文章的上传和下载。
Cos是一个性能优秀的上传下载组件,使用非常容易的实现文件的上传和下载功能。
这里附上我所使用版本的Cos.jar的链接:https://mvnrepository.com/artifact/com.jfinal/cos/2020.4
点击链接进入后点击下图中圈出的地方就可以直接下载啦~(不用叫我雷锋~)
2、文件上传的实现
(1)文件上传的jsp页面
在页面中一定注意表单的method属性的值必须为post,enctype的属性值必须设置为multipart/form-data,upload为执行上传操作的Servlet的地址。
(2)执行上传操作的核心Servlet类
saveDirectory是上传到服务器的路径,maxPostSize是上传大小限制,以字节为单位。如果上传文件重名,默认会覆盖原先的文件
将代码稍作修改就不会覆盖原来的文件,会自动为新文件重新命名(文件名后加序号)
(3)要获得上传的文件和表单的其它元素的信息,可借助于MultipartRequest类型的对象multi实现
提示:在这里上传文件,是将本地文件,传到服务器上,并指定在服务器上所存放的位置,一般在本工程下,创建文件夹,用于存放所上传的文件。
案例——使用Cos组件实现作业上传
要求:设计作业上传程序,上传作业的文件命名格式为“学号+题号”,上传到服务器后,将文件重命名为“客户端IP地址+学号+题号”的形式,同一题目,学生可以上传多次,后上传的将覆盖先前上传的文件。
设计关键:要求对上传的文件重新命名,这就需要借助于MultipartRequest对