文件上传
1.> 主要是对文件上传的操作,执行简要概述。
2.> 所用知识:
form jsp servlet IO流 xml,主要是这五个知识块;
(1.) 其中 form 表单用于选择文件,通过属性 enctype 设置属性值为 multipart/form-data 以二进制流上传该文件
(2.) jsp可以理解为中 form 通过属性 method 属性值post(或get) 设置提交方式为 post(或 get ),两者区别网上有详 细讲解。
(3.) 服务器端即后台通过 servlet 的 doGet() doPost() 方法接收二进制流上传文件
(4.) IO 流,输入流以字节方式读取二进制流,输出流以字节方式写入新建的临时文件中
(5.) XML用来配置相关文件
3.> 原理:
通过 form 表单选择文件,通过 post(或get)方法提交,提交文件设置为以二进制流传送给后台servlet,
sevlet通过 IO 输入输出流接收该文件存到一个临时文件夹;
到此简单的上传已经实现,文件内容在临时文件内。注意设置相应的编码方式以防乱码问题,有中文编码建议
设置为 utf-8 。
4.> 代码展示:
提交页面 index.jsp,代码如下:
后台处理 servlet,代码如下:
对应的 XML ,代码如下:
//
运行 tomcat 后,进入文件上传页面,index.jsp,选择一文本文件点击上传按钮,文件内容在 E 盘下临时新建文件 newfile 中。
(本次测试,新建文件选择的路径是 E://newfile。通过记事本打开文件 filename 中间部分为内容,其他为流读取时同步设置的信息。内容在后期下载时会进行从临时文件提取,抛弃非内容数据,并删除临时文件等操作。)
例:我选择的文件为 new.txt 内容:
zjicadsad
你我他
dawa2132
21
3
12
4
342
上传后的临时文件中数据为:
------WebKitFormBoundarycVRGnUO5AteJyDvm
Content-Disposition: form-data; name="File"; filename="new.txt"
Content-Type: text/plain
zjicadsad
你我他
dawa2132
21
3
12
4
342
------WebKitFormBoundarycVRGnUO5AteJyDvm--