15.1-上传和下载_课程笔记.docx

上传人:hw****26 文档编号:3053947 上传时间:2019-05-19 格式:DOCX 页数:29 大小:1.14MB
下载 相关 举报
15.1-上传和下载_课程笔记.docx_第1页
第1页 / 共29页
15.1-上传和下载_课程笔记.docx_第2页
第2页 / 共29页
15.1-上传和下载_课程笔记.docx_第3页
第3页 / 共29页
15.1-上传和下载_课程笔记.docx_第4页
第4页 / 共29页
15.1-上传和下载_课程笔记.docx_第5页
第5页 / 共29页
点击查看更多>>
资源描述

1、文件的上传和下载1. 学习目标学习任务:掌握文件上传和下载技术(资源存放服务器磁盘中.)2. 文件上传文件上传:允许客户将本地文件,上传到服务器端 应用场景:上传照片、上传新闻图片、上传音频等等. 上传准备: 1: 提供页面给用户 点击上传 2: 服务器端接受用户上传文件. 不再是一个字符串 request.getParameter(“xx“)String 传统获取客户资源 api request.getParamtger/values/map String String上传服务器端 servlet 代码 需要专门 api 解析上传文件-I/O 写到 服务器端指定磁盘文件 服务器端如何获取绝对

2、路径! ServletContext.getRealPath()2.1.文件上传 jsp 页面设置在用户的页面 .jsp 页面需求如下:jsp 页面需要的参数配置1、在用户页面中添加上传输入项 (客户端页面操作)注意事项:要求1) 必须为文件上传 input 提供 name 属性,否则文件上传内容不会被表单提交 2) 表单的提交是 post 3) 设置表单的 enctype=“multipart/-data“ 使得文件上传编码 - MIME 编码格式上传页面的编写说明day18_upload 工程 编写 upload.jsp 页面上传 jsp 页面硬性要求upload.jsp 页面设计:2:

3、服务器端 servlet 表单提交 action 地址 获取上传信息 解析文件 -I/O 写到磁盘位置 解析 request.getInputStream 将文件和文本信息 分类保存 请求参数信息 自动封装一个对象 FileItem 对象 引入 apache 上传框架 一组 jar 引入 lib 目录即可lib 引入 2 个 jar 查看文档 如何上传!解析 request.InputStream 重点从此开始1: 开发步骤2: 文档 参照解析 request 对象 List 集合 所有请求参数信息 集合里面泛型! 集合里面元素类型!FileItem : 将上传 普通文本 type=“text

4、/radio“ 类型 封装到 FileItem 对象 将上传 文件 type=“file“ 封装到 FileItem 对象里面 解析完成!3: 集合元素进行分类处理 参照文档 集合分类代码 文档 集合List 上传文件处理代码item.getFiledName(): - 获取标签 input 标签 name 属性对应值item.getName(); - 上传文件文件名item.getContentType()- 上传文件的 mime 类型 text/html /注意: 乱码问题 普通文本域 解决乱码 getString(“utf-8“)文件名称乱码 : 解析之前解决 parser.setHea

5、derEncoding(“utf-8“)关键步骤 上传文件 写到服务器指定磁盘位置:上传本质 1 获取服务器存放上传文件绝路路径 2: item.write(file) 将文件写到指定文件 代替 i/o 读取!item.isFormField() 循环遍历集合 判断当前元素是否是一个普通文本域 还是一个上传文件.测试:代码 发现 服务器 tomcat 主目录 temp 临时目录 会有上传临时文件 缓存! 上传文件完成之后 清除缓存 item.delete() 清理该目录下缓存!优化版本代码获取服务器绝对路径.5: 上传完成之后 一般 设置上传文件大小 不允许用户肆意上传大文件. 代码 对上传文

6、件大小处理 添加代码 上传过大 提供友好页面 处理异常 捕捉异常信息 在友好页面 给予处理.上传问题说明2.2.上传问题 1浏览器兼容问题: 1: IE 出问题 火狐没有问题 IE 报错: E:all_apachesapache-tomcat-6.0.32apache-tomcat-6.0.32webappsday18_uploaduploadE:servlet_day02.docIE 出现问题 上传文件名 带有客户端盘符!代码添加对于浏览器类型 提交数据 处理 IE forefire 都要可以实现文件上传引入工具类 处理 盘符问题 下发 分层 jar servlet 上传的代码 需要添加一行即可.引入工具类截取文件名上传代码添加工具类 解决文件名问题2.3.上传问题 2文件名重名问题 覆盖同一个目录下文件名相同的文件!导致文件丢失!后续操作显示该文件真实名称!解决方案: 真实名称 和 随机名称 文件存在服务器路径 都插入到数据库1, asdasfasfa.jpg, 陈冠希.jpg , /upload/mm/asdasfasfa.jpg如何解决生成的文件名相同? 引入:UUID 解决方法 引入工具类 生成随机不同的文件名代码块: 补充: 减轻服务器磁盘一个文件夹存放海量文件 可以引入分离目录算法!( 了解!)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。