文件上传和下载
avaweb —— ——文件上传和下载
文章目录
javaweb —— ——文件上传和下载
一、如何实现文件上传要实现Web开发中的文件上传功能,通常需完成两步操作: -是在Web页面中添加上传输入项;**如何实现文件上传
要实现Web开发中的文件上传功能,通常需要完成两步操作:一.是在Web页面中添加上传输入项;二是在Servlet中读取上传文件的数据,并保存到本地硬盘中。
需要使用一个Apache组织提供一个开源组件Commons-FileUpload,在使用这个组件的时候。文件上传的相关API
(一)FileItem接口
在HTML页面input 必须有 name 表单如果包含一个文件上传输入项的话,这个表单的enctype属性就必须设置为multipart/form-data
浏览器表单的类型如果为multipart/form-data,那么浏览器在提交表单数据时,它将采用MIME协议对数据进行封装后提交,在服务器这端也将不能采用
原来传统的方工获取数据了。在服务器端想获取数据就要通过流。request提供了一个getInputStream读取流。
FileUpload组件实现文件上传的工作流程
1.1创建项目、导入JAR包
在Eclipse中创建一个名称为chapter12的web项目,在项目的WEB-INF/lib目录下导入JAR包(如下图红框勾选),并发布到类的路径下。导入JAR包的项目结构如下图所示。
1.2创建上传界面
在chap12项目的webapp目录下创建一个名称为form的JSP页面,该页面用于提供文件上传的Form表单,需要注意的是,Form表单的enctype属性值要设置为“multipart/form-data”,method属性值要设置为“post”,并将其action的属性值设置为“UploadServlet”。From.jsp的代码如文件所示。
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
上传文件 实现文件上传
1.创建项目,导入JAR包
在这里插入图片描述在这里插入图
片描述
2 创建上传页面
form.jsp
在这里插入图片描述
3 创建ServletServlet中读取上传文件的数据,并保存到本地硬盘中。接下来,本节将对这两步操作内容进行详细讲解。
由于大多数文件的上传都是通过表单的形式提交给服务器的,因此,要想在程序中实现文件上传的功能,首先要创建一一个用于提交上传文件的表单页面。在页面中,需要使用<inputtype= “file”>标签在Web页面中添加文件上传输入项。
标签的使用需要注意以下两点。
必须要设置input输入项的name属性,否则浏览器将不会发送 上传文件的数据。必须将表单页面的method属性设置为post 方式,enctypeform-data"类型。
需要注意的是,在使用FileUpload组件时,要导入commons-fileupload.jar和commons-io.jar两个JAR包,这两个JAR包可以去Apache官网“http://commons .apache.org/"下载(进入该网址页面后,在Apache Commons Proper 下方表格的Components列中找到FileUpload和
UploadServlet.javaServletFileUpload类是Apache 组件处理文件上传的核心高级类,通过使用parseRequestHttpServletRequest)方法可以将HTML 中每个表单提交的数据封装成一个Fileltem对象,然后以List 列表的形式返回。ServletFileUpload 类中包含两个构造方法。
在这里插入图片描述
writer.print(“上传文件成功!
”);
}
}
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
1.4启动项目,查看运行结果
总结:本次主要做了文件的上传和下载,在实现文件上传时,使用了Apache组织提供的Commons-FileUpload组件,该组件提供了文件上传的相关接口和类。文件下载功能是通过设置HTTP响应消息头和IO流的方式实现的。通过本次的学习,我们了解到如何实现文件的上传和下载。