文件的上传介绍:
一、什么是文件上传?
文件上传就是将客户端的资源通过网络数据传递到服务器
二、为什么要用文件上传?
使用上传文件的主要原因是一般上传的文件数据都很大
三、上传文件的本质:
文件上传的本质就是IO流的操作。服务器端通过流读取数据,然后对数据进行解析,得到上传文件的内容,然后保存在服务器端
四、客户端如何上传数据?
1.要有一个form标签,method=post请求因为提交的数据会比较大,所以使用post提交
2.form标签的encType属性值必须为multipart / form-date值
3.在form标签中使用input type=file添加上传的文件
4.编写服务器代码(Servlet程序)接收,处理上传的数据
encType=multipart / from-date表示提交的数据,以多段(每一个表单项一个数据段)的形式进行拼接,然后以二进制的形式发送给服务器
五、服务器如何处理数据?
1.用request对象获取请求信息
2.通过request的getInputStream()方法,可以读取到所有请求正文消息
3.操作IO流,将所需要的信息保存在服务器端
六、fileupload.jar包的使用
commons-fileupload.jar通常和cimmins-io.jar包一起使用,用来操作文件上传。
commons-fileupload.jar和commons-io.jar包中,常用的类:
ServletFileUpload类,用于解析上传的数据
FileItem类,表示每一个表单项
boolean ServletFileUpload.isMultipartContent(HttpServletRequest request);
判断当前上传的数据格式是否是多端的格式
public List<FileItem>parseRequest(HttpServletRequest request)
解析上的数据
boolean FileItem.isFormField()
判断当前这个表单项,是否为普通表单项,还是上传的文件类型
true 表示普通类型的表单项
false 表示上传的文件类型
String FileItem.getFieldName()
获取表单项的name属性值
String FileItem.getString()
获取当前表单项的值
String FileItem.getName()
获取上传的文件名
void FileItem.write(file)