文件的上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,可以使用apache的这个包commons-fileUpload上传组件
jar包可以从http://mirrors.tuna.tsinghua.edu.cn/apache/这个网站下载
一、开发环境的配置:
导入上传相关jar包
二、实现文件的上传
upload.jsp表单页面
message.jsp页面
uploadServlet
使用apache的common-upload包的步骤
得到上传文件路径
1、创建一个DiskFileItemFactory工厂
/2、创建一个文件上传解析器
3、判断提交上来的数据是否是上传表单的数据
4、使用ServletFileUpload解析器解析上传数据
在web.xml中注册UploadServlet
三、文件上传需要注意的问题
1、保证服务器安全,上传的文件应该放在外界无法访问的目录下,如WEB-INF下
2、防止文件覆盖现象,为文件产生一个唯一的文件名
3、为防止一个目录下出现太多文件,要使用hash算法打散存储
4、限制上传文件的最大值
5、限制上传文件的类型
实现文件的下载
一、列出要下载的文件资源
在DoFileServlet中列出要下载的文件资源
找到文件路径
存储文件名
发送文件达显示页面
在web.xml配置
设置list.jsp显示界面
二、实现文件下载
downloadServlet
文件名
上传文件的路径
文件名对应的子目录
文件File
获取纯粹的文件名
设置响应头控制浏览器行为的setHeader方法
使用IO流下载文件