上传
什么是上传
将客户端的文件的副本上传到服务器
上传
- 表单是mutipart/form-data
- 请求方式是post
- 表单中有file表单元素
boundary
指明分割线,表示下面的分割线用 -----
两个分割线之间的部分是每一个item,每个item包含三部分
fileupload
用法:参考官网
临时文件
可以指定当文件大于多少时,就生成临时文件而不是将所有的内容都读取到内存中去
解决问题
- 文件名问题
- 文件大小
- 目录管理
临时目录
文件从客户端传输到服务器时并不是,一次性将所有文件内容都传过来,而是将一个文件分割成多个数据包,数据包并不是按顺序到达,所有数据包都到达后才能组建出一个完整文件,在这之前是临时文件,临时文件存放地址就是这个临时目录,默认情况下tomcat中用的是temp
下载
什么是下载
服务器上的文件副本下载到客户端
超链接下载方式
当浏览器请求到的是二进制文件,如果能解析浏览器就自动解析,如果不能就会弹出另存为的框保存本地
请求头的设置
当请求头的content-disposition 值为attachment时,会强制浏览器以附件的形式进行处理
乱码问题
浏览器在http协议中规定只能接收ISO8859-1字节数据,而UTF-8是字符型数据所以不被识别,但ISO8859-1表示不了UTF-8的内容,浏览器还会根据字节的编码再对ISO8859-1的数据进行解码。
按当前字符编码转成byte数组,然后按目标字符编码转码(浏览器只认 ISO8859-1)