文件上传
文件上传如何实现
- form表单
- 表单method="post"
- 表单增加属性 enctype="multipart/form-data"
- 表单中需要添加文件表单项:
<input type="file" name="xxx" />
- servlet中 使用request.getInputStream(),
多部件表单的体【了解即可】
所需jar包
- commons-fileupload.jar
- commons-io.jar
这个小组件,它会帮我们解析request中的上传数据,解析后的结果是一个表单项数据封装到一个FileItem对象中。我们只需要调用FileItem的方法即可!
上传三步
1). 创建工厂:DiskFileItemFactory factory = new DiskFileItemFactory();
2). 创建解析器:ServletFileUpload sfu = new ServletFileUpload(factory);
3). 使用解析器来解析request,得到FileItem集合:List<FileItem> fileItemList = sfu.parseRequest(request);
FileItem的API
boolean isFormField():是否为普通表单项!返回true为普通表单项,如果为false即文件表单项!
String getFieldName():返回当前表单项的名称;
String getString(String charset):返回表单项的值;
String getName():返回上传的文件名称
long getSize():返回上传文件的字节数
InputStream getInputStream():返回上传文件对应的输入流
void write(File destFile):把上传的文件内容保存到指定的文件中。
String getContentType();
代码实现
JSP
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html lang=&