文件的上传和下载学习小结
2018-06-18 00:29:44来源:未知 阅读 ()
文件的上传和下载学习小结
一、文件上传
客户端通过浏览器将文件上传至服务器。 对于我们写代码来说,就是IO操作。 二、实现文件上传 对表单有什么要求? 1. 提交方式必须为post 2. enctype="multipart/form-data" 3. <input type="file" name="photo"/> 对于服务器的servlet有什么要求? request.getParameter("name"); 不能用该方式获取表单数据了,若非要用,则返回null。 request.getInputStream(); 使用字节输入流获取数据了。 数据能够获取到了,但是需要解析。大神可以自己解析(就是一顿切割、取值)! 对于小小牛的我,使用 Apache 开源组织提供了一个用来处理表单文件上传的一个开源组件( Commons-fileupload ),它最主要的工作就是帮我们解析request.getInputStream()。 该组件性能优异,并且其API使用极其简单,可以让开发人员轻松实现web文件上传功能,因此在web开发中实现文件上传功能,通常使用Commons-fileupload组件实现。 Commons-fileupload commons-fileupload.jar commons-io.jar
DiskFileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload sfu = new ServletFileUpload(); List<FileItem> fileItems = sfu.parseRequest(request); FileItem接口的方法: isFormFiled(); 判断当前字段是否是普通文本字段,如果返回false,则说明是文件字段。 getFileName(); 获取字段名,例如:< input type="text" name="username" />,返回的是username。 getString("UTF-8"); 获取字段值,并解决上传普通文本表单出的乱码问题,如果是文件字段,那么获取的是文件内容,当然上传的文件必须是文本文件。 getInputStream(); 获取上传文件对应的输入流。 getName(); 获取文件字段的文件名称(如:a.txt)。 getContentType(); 获取上传的文件的MIME类型,例如:text/plain、image/pjpeg。 getSize(); 获取上传文件的大小。 write(File file) 把上传的文件保存到指定文件中。 delete(); 三、文件上传需要考虑的几个问题
a、保证服务器的安全 把保存上传文件的目录放在用户直接访问不到的地方。 b、避免文件被覆盖 让文件名唯一即可。 c、避免同一个文件夹中的文件过多 方案一:按照日期进行打散存储目录 方案二:用文件名的hashCode计算打散的存储目录:二级目录 d、限制文件的大小:web方式不适合上传大的文件 设置单个文件大小 设置总文件大小 e、上传字段用户没有上传的问题 通过判断文件名是否为空即可。 f、临时文件的问题 如果上传文件过大,就会有临时文件。 FileItem.delete(); 如果自己用IO流实现的文件上传,则要在流关闭后,清理临时文件。 FileItem.write(File file); 把上传的文件保存到指定文件,该方式会自动删除临时文件,注意:实际操作不能够自动删除临时文件,所以需要手动删除(即:使用 FileItem自带的方法上传文件)。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- jdk各个版本下载 2020-06-11
- 构建自己的jar包上传至Mvaen中央仓库和版本更新 2020-06-11
- Maven安装与配置 2020-06-09
- java环境教程:Tomcat下载,安装,设置为Windows服务,启动 2020-06-09
- Spring Boot 实现配置文件加解密原理 2020-06-08
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash