第十章 文件上传

第十章 文件上传

  • 1.文件上传的介绍
  • 2.上传的http协议内容介绍
  • 3.上传合用到的类和方法的介绍
  • 4.使用fileupload解析上传数据
  • 5.文件下载的实现
  • 6.使用URLEncoder解决谷歌和中文浏览器中文下载名乱码问题
  • 7.Base64编解码操作
  • 8.使用Base64编解码解决火狐浏览器附件中文乱码问题
  • 9.使用User-Agent请求头判断,动态切换不同的浏览器方案解决所有浏览器附件中文乱码问题

1.文件上传的介绍

第十章 文件上传_第1张图片
第十章 文件上传_第2张图片
第十章 文件上传_第3张图片
第十章 文件上传_第4张图片
第十章 文件上传_第5张图片
点击上传
第十章 文件上传_第6张图片

2.上传的http协议内容介绍

第十章 文件上传_第7张图片
下面展示提交之后,服务器这边会做什么处理,收到了哪些内容
第十章 文件上传_第8张图片
上面是请求头,下面是请求体
第十章 文件上传_第9张图片
第十章 文件上传_第10张图片
第十章 文件上传_第11张图片

因为客户端是以流的形式发送的,所以也必须以流的形式接收
第十章 文件上传_第12张图片
下面一些乱七八糟的乱码就收到的上传的文件数据
第十章 文件上传_第13张图片

3.上传合用到的类和方法的介绍

我们可以使用下面的jar包对我们收到的数据进行解析
第十章 文件上传_第14张图片
第十章 文件上传_第15张图片
第十章 文件上传_第16张图片

4.使用fileupload解析上传数据

第十章 文件上传_第17张图片
第十章 文件上传_第18张图片
第十章 文件上传_第19张图片

之后我们在(客户端)浏览器页面进行上传操作
第十章 文件上传_第20张图片
我们在服务端可以收到信息
第十章 文件上传_第21张图片

上传的图片也成功的保存在磁盘上
第十章 文件上传_第22张图片

5.文件下载的实现

上一节是文件的上传,这一节讲文件的下载
我先在服务器中新建一个file文件夹,并且放两个文件2.jpg和3.jpg
第十章 文件上传_第23张图片
第十章 文件上传_第24张图片
第十章 文件上传_第25张图片

我们一起的做法是不停的用while循环读取
但我们现在有commons相关的包,里面有工具类可以直接使用
第十章 文件上传_第26张图片
告诉客户端要返回的数据类型放到前面去操作
第十章 文件上传_第27张图片
下面进行配置(注意:配置文件写好了要重新部署才能生效)
第十章 文件上传_第28张图片

我在客户端(浏览器)输入访问地址,图片就会显示成功
第十章 文件上传_第29张图片
第十章 文件上传_第30张图片
我们这里在进去浏览器后,图片被直接显示在客户端上面
但我们希望的是下载
第十章 文件上传_第31张图片
第十章 文件上传_第32张图片
第十章 文件上传_第33张图片

下面重新部署一次
下载成功
第十章 文件上传_第34张图片

6.使用URLEncoder解决谷歌和中文浏览器中文下载名乱码问题

我下载下来的名字是可以自己指定一个的
可以跟原来下载的原文件名不同
第十章 文件上传_第35张图片
第十章 文件上传_第36张图片
如果我改的文件名有中文
第十章 文件上传_第37张图片
这里文件名无法识别
第十章 文件上传_第38张图片
如果我们的浏览器为谷歌浏览器,那我们需要对这个中文名进行URL编码
第十章 文件上传_第39张图片
第十章 文件上传_第40张图片

7.Base64编解码操作

第十章 文件上传_第41张图片
火狐浏览器是没有办法使用以上方法的
第十章 文件上传_第42张图片
下面是编码操作
第十章 文件上传_第43张图片

下面是解码操作
第十章 文件上传_第44张图片
第十章 文件上传_第45张图片

8.使用Base64编解码解决火狐浏览器附件中文乱码问题

第十章 文件上传_第46张图片
第十章 文件上传_第47张图片
第十章 文件上传_第48张图片
这个时候火狐浏览器也可以了
第十章 文件上传_第49张图片

9.使用User-Agent请求头判断,动态切换不同的浏览器方案解决所有浏览器附件中文乱码问题

第十章 文件上传_第50张图片

你可能感兴趣的:(JavaWeb,java,后端,开发语言)