




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第10章文件的上传与下载学习目的与要求本章重点介绍Servlet的HttpServletRequest对文件上传的支持。通过本章的学习,理解文件上传的原理,掌握文件上传与下载的步骤。《JavaWeb开发从入门到实战(第2版·微课视频版)》陈恒
主编,清华大学出版社,2024
目录10.1基于Servlet的文件上传10.2文件的下载《JavaWeb开发从入门到实战(第2版·微课视频版)》陈恒
主编,清华大学出版社,2024
10.1基于Servlet的文件上传Servlet3.0之前的版本不能对文件上传直接支持,需要使用第三方框架来实现,而且使用起来也不够简单。从Servlet3.0开始提供了文件上传功能,而且使用也非常简单。让Servlet支持文件上传,需要做两件事情: 给Servlet添加@MultipartConfig注解。 从HttpServletRequest对象中获取Part文件对象。《JavaWeb开发从入门到实战(第2版·微课视频版)》陈恒
主编,清华大学出版社,2024
10.1.1文件上传的表单设置<formaction="upload"method="post"enctype="multipart/form-data">
<inputtype="file"name="headImage"><br>
<inputtype="submit"value="上传"></form>不要忘记设置文件上传的表单属性enctype,并将它的值设置为multipart/form-data。同时,表单的提交方式设置为post。只有这种设置,浏览器才能将所选文件的二进制数据发送给服务器。《JavaWeb开发从入门到实战(第2版·微课视频版)》陈恒
主编,清华大学出版社,2024
10.1.2@MultipartConfig注解@MultipartConfig注解主要是为了辅助Servlet中HttpServletRequest提供对上传文件的支持。该注解标注在Servlet上面,以表示该Servlet希望处理请求的MIME类型是multipart/form-data。即使没有使用@MultipartConfig注解设置属性,文件上传时也要把该注解加到Servlet的上面。属性名类
型是否可选描
述locationString是指定上传文件存放的目录。当指定了location后,在调用Part的write(StringfileName)方法把文件写入到磁盘的时候,文件名称可以不用带路径,但是如果fileName带了绝对路径,那将以fileName所带路径为准把文件写入磁盘。maxFileSizelong是指定上传文件的最大值,单位是字节。默认值为-1,表示没有限制。maxRequestSizelong是指定上传文件的个数,应用在多文件上传。默认值为-1,表示没有限制。《JavaWeb开发从入门到实战(第2版·微课视频版)》陈恒
主编,清华大学出版社,2024
10.1.3Part接口每一个文件用一个jakarta.servlet.http.Part对象来表示。单个文件上传时,在Servlet中可以通过HttpServletRequest对象request调用方法getPart(String
name)获得Part文件对象。其中,参数name为文件域的名称。例如:Partphoto=request.getPart("resPath");多文件上传时,在Servlet中可以通过HttpServletRequest对象request调用方法getParts()获得Part文件对象集合。例如:Collection<Part>photos=request.getParts();《JavaWeb开发从入门到实战(第2版·微课视频版)》陈恒
主编,清华大学出版社,2024
10.1.3Part接口序号方
法功
能
说
明1voiddelete()删除任何相关的临时磁盘文件2StringgetContentType()
获得客户端浏览器设置的文件数据项的MIME类型3StringgetHeader(Stringname)获得指定的part头的一个字符串。例如:getHeader("content-disposition")返回form-data;name="xxx";filename="xxx"4InputStreamgetInputStream()
获得一个输入流,通过这个输入流来读取文件的内容5StringgetName()
获得表单文件域的名称6longgetSize()获得文件的大小7voidwrite(StringfileName)
将文件上传到fileName指定的目录里8StringgetSubmittedFileName()获取原始文件名《JavaWeb开发从入门到实战(第2版·微课视频版)》陈恒
主编,清华大学出版社,2024
10.1.4单文件上传【例10-1】单文件上传。《JavaWeb开发从入门到实战(第2版·微课视频版)》陈恒
主编,清华大学出版社,2024
10.1.5多文件上传【例10-2】多文件上传。《JavaWeb开发从入门到实战(第2版·微课视频版)》陈恒
主编,清华大学出版社,2024
10.1.6实践环节——上传文件限定尝试对10.1.5小节中多文件上传实例文件大小进行限定。《JavaWeb开发从入门到实战(第2版·微课视频版)》陈恒
主编,清华大学出版社,2024
目录10.1基于Servlet的文件上传10.2文件的下载《JavaWeb开发从入门到实战(第2版·微课视频版)》陈恒
主编,清华大学出版社,2024
10.2.1文件下载的实现方法利用程序实现下载需要设置两个报头:1.Web服务器需要告诉浏览器其所输出内容的类型不是普通文本文件或HTML文件,而是一个要保存到本地的下载文件。设置Content-Type
的值为:application/x-msdownload。2.Web服务器希望浏览器不直接处理相应的实体内容,而是由用户选择将相应的实体内容保存到一个文件中,这需要设置Content-Disposition报头。该报头指定了接收程序处理数据内容的方式,在HTTP应用中只有attachment是标准方式,attachment表示要求用户干预。在attachment后面还可以指定filename参数,该参数是服务器建议浏览器将实体内容保存到文件中的文件名称。设置报头的示例如下:response.setHeader("Content-Type","application/x-msdownload");response.setHeader("Content-Disposition","attachment;filename="+filename);《JavaWeb开发从入门到实战(第2版·微课视频版)》陈恒
主编,清华大学出版社,2024
10.2.2文件下载首先将10.1节上传到服务器uploadFiles目录中的文件列举到页面,然后单击页面中的下载链接下载文件。《JavaWeb开发从入门到实战(第2版·微课视频版)》陈恒
主编,清华大学出版社,2024
10.2.3文件名乱码问题如果下载的文件名中有中文字符的话,浏览器提示保存的文件名将显示为乱码。要解决这个乱码问题,需要对下载的文件名按照UTF-8进行编码。首先,在本章工具类MyUtil中添加一个静态字符编码转换方法。然后,修改10.2.2中的DownloadServlet.java,对要下载的文件名调用toUTF8String()方法,代码片段如下:aFileName=request.getParameter("resPath");//设置下载文件使用的报头response.setHeader("Content-Type","application/x-msdownload");response.setHeader("Content-Disposition","attachment;filename="+MyUtil.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度婚内夫妻财产独立与共享约定
- 二零二五年度个人肖像权影视节目预告片授权合同
- 2025年度有限公司股权质押解除及债权债务处理协议
- 二零二五年度餐饮品牌授权经营合同
- 酒店客房智能化客房管理系统升级合作协议
- 百货业管理知识培训课件
- 交通运输设备(山东联盟)知到智慧树章节测试课后答案2024年秋山东科技大学
- 运动员心理知识培训课件
- 2025国网中兴有限公司高校毕业生招聘(第一批)笔试参考题库附带答案详解
- 不病防控知识培训课件
- 个人应聘简历电工
- 2025年上半年河南省高校毕业生“三支一扶”招募1100人易考易错模拟试题(共500题)试卷后附参考答案
- 高血压的用药指导任务三高血压的药物治疗讲解
- 《马云创业经历》课件
- 云南省大理白族自治州2024-2025学年八年级上学期1月期末考试英语试卷(无答案)
- 无人机行业市场分析指南
- 踇外翻病人护理查房
- 广西河池市(2024年-2025年小学六年级语文)统编版专题练习(上学期)试卷及答案
- 施工安全管理培训资料
- 2024中考物理真题汇编:电与磁(含解析)
- 中建10t龙门吊安拆安全专项施工方案
评论
0/150
提交评论