关于文件的上传和下载之上传篇
刚好写项目时所遇到的不熟的地方,今天拿出来理一遍
文件上传
什么是文件上传?为什么要使用文件上传?
文件上传就是将客户端资源,通过网络传递到服务器端。因为数据比较大,我们必须通过文件上传才可以完成将数据保存到服务器端的操作。
文件上传的本质:就是==IO流(输入和输出)==的操作。
文件上传应该进行怎样的操作?
-
浏览器端
1.from 表单里面method=post请求方法为post,只有post才能携带大数据,get没法
2.必须使用input type=“file” name="f"这里要有name属性,没有的话,是无法识别标签进行上传文件的
3.encType="multpart/form-data"由默认的值改成这个,指的是可以上传非二进制文件 -
服务器端
1.request对象用于获取请求信息
2.他有一个方法 getInputStream();可以获得一个字节输入流,通过这个流,可以读取到所有的请求正文信息。
3.将解析的文件内容得到,保存在服务器端
文件上传原理:
浏览器端注意上述三件事情:
1.在服务器端通过流将数据读取到
2.对取得的数据进行解析
3.将解析的文件内容得到,保存在服务器端
文件解析(压缩,解压,解密,加密)(后续更新)
在实际开发中,不需要我们进行数据解析,完成文件上传,因为我们会使用文件上传的工具,它们已经封装好的提供API ,只要调用它们对应的API就可以完成文件上传操作。
下面这个博客里面有关于压缩,解压,解密,加密的API源代码可以进行套用,挺实用的
https://blog.csdn.net/shareus/article/details/50469163
我们使用的commons-fileupload,它是apache提供的一套开源免费的文件上传工具。