《Java Web开发从入门到实战(IntelliJ IDEA版·微课视频版)》 课件 第8章 文件的上传与下载_第1页
《Java Web开发从入门到实战(IntelliJ IDEA版·微课视频版)》 课件 第8章 文件的上传与下载_第2页
《Java Web开发从入门到实战(IntelliJ IDEA版·微课视频版)》 课件 第8章 文件的上传与下载_第3页
《Java Web开发从入门到实战(IntelliJ IDEA版·微课视频版)》 课件 第8章 文件的上传与下载_第4页
《Java Web开发从入门到实战(IntelliJ IDEA版·微课视频版)》 课件 第8章 文件的上传与下载_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第8章文件的上传与下载学习目的与要求本章重点介绍Servlet的HttpServletRequest对文件上传的支持。通过本章的学习,理解文件上传的原理,掌握文件上传与下载的步骤。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

目录《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

8.1基于Servlet的文件上传8.2文件的下载8.1基于Servlet的文件上传Servlet3.0之前的版本不能对文件上传直接支持,需要使用第三方框架来实现,而且使用起来也不够简单。从Servlet3.0开始提供了文件上传功能,而且使用也非常简单。让Servlet支持文件上传,需要做两件事情: 给Servlet添加@MultipartConfig注解。 从HttpServletRequest对象中获取Part文件对象。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

8.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开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

8.1.2@MultipartConfig注解@MultipartConfig注解主要是为了辅助Servlet中HttpServletRequest提供对上传文件的支持。该注解标注在Servlet上面,以表示该Servlet希望处理请求的MIME类型是multipart/form-data。即使没有使用@MultipartConfig注解设置属性,文件上传时也要把该注解加到Servlet的上面。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

属性名类

型是否可选描

述locationString是指定上传文件存放的目录。当指定了location后,在调用Part的write(StringfileName)方法把文件写入到磁盘的时候,文件名称可以不用带路径,但是如果fileName带了绝对路径,那将以fileName所带路径为准把文件写入磁盘。maxFileSizelong是指定上传文件的最大值,单位是字节。默认值为-1,表示没有限制。maxRequestSizelong是指定上传文件的个数,应用在多文件上传。默认值为-1,表示没有限制。8.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开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

8.1.3Part接口《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

序号方

法功

明1voiddelete()删除任何相关的临时磁盘文件2StringgetContentType()

获得客户端浏览器设置的文件数据项的MIME类型3StringgetHeader(Stringname)获得指定的part头的一个字符串。例如:getHeader("content-disposition")返回form-data;name="xxx";filename="xxx"4InputStreamgetInputStream()

获得一个输入流,通过这个输入流来读取文件的内容5StringgetName()

获得表单文件域的名称6longgetSize()获得文件的大小7voidwrite(StringfileName)

将文件上传到fileName指定的目录里8StringgetSubmittedFileName()获取原始文件名8.1.4单文件上传【例8-1】单文件上传。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

8.1.5多文件上传【例8-2】多文件上传。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

8.1.6实践环节——上传文件限定尝试对8.1.5小节中多文件上传实例文件大小进行限定。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

目录《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

8.1基于Servlet的文件上传8.2文件的下载8.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开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

8.2.2文件下载首先将8.1节上传到服务器uploadFiles目录中的文件列举到页面,然后单击页面中的下载链接下载文件。《JavaWeb开发从入门到实战(微课视频版)(IntelliJIDEA版)》陈恒

主编,清华大学出版社,2024

8.2.3文件名乱码问题如果下载的文件名中有中文字符的话,浏览器提示保存的文件名将显示为乱码。要解决这个乱码问题,需要对下载的文件名按照UTF-8进行编码。首先,在本章工具类MyUtil中添加一个静态字符编码转换方法。然后,修改8.2.2中的DownloadServlet.java,对要下载的文件名调用toUTF8String()方法,代码片段如下:aFileName=request.getParameter("resPath");//设置下载文件使用的报头response.setHeader("Content-Type","application/x-msdownload");response.setHeader("Content-Disposition","attachment;filename="+MyUtil.toUTF8Stri

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论