shengke的gravatar头像
shengke 2015-01-26 12:19:49

java Servlet上传下载文件http协议原理详解

前几天要用到文件上传下载,找了找,总结一下:

示例是用java Servlet实现的,如果你有其他的需求可以加以修改,其原理是不变的。

1:文件上传后台步骤:

获取request当中的流信息,保存到临时文件

从临时文件当中得到上传的文件名,以及文件内容,即文件内容的起始位置

根据文件起始位置读取上传文件内容

2:文件下载

前端页面通过超链接方式发起文件下载请求,把要下载的文件名传递给后台

在servlet实现文件的下载操作(设置响应类型及响应头,输出流写入文件内容)

使用httpfox看上传文件的内容,为了观看方便,本地新建一个text文档

java Servlet上传下载文件http协议原理详解

使用httpfox看上传文件的内容

java Servlet上传下载文件http协议原理详解

对数据流的解释:

-----------------------------16072929884245426741004569681 

//对我们没用
Content-Disposition: form-data; name="myfile"; filename="test"

//只要使用filename="test"这个“”里面的,也就是我们的上处的文件名,代码里使用字符串截取获得的。
Content-Type: application/octet-stream

//上传的类型是application/octet-stream

//下面就是上传文件的具体内容了,也是我们需要存储的内容

hello!haha

-----------------------------16072929884245426741004569681--


打赏

文件名:fileSCXZ.zip,文件大小:116.548K 下载
最代码最近下载分享源代码列表最近下载
3969138  LV15 2019年9月23日
小王wang  LV10 2017年5月26日
阿基师  LV5 2017年1月9日
沉默的羔羊  LV13 2016年12月31日
kasojava  LV3 2016年12月21日
猛男  LV17 2016年5月29日
303661956  LV11 2016年2月2日
归心小贩  LV13 2016年1月21日
有生之年  LV4 2015年6月24日
cpr  LV3 2015年3月18日
最代码最近浏览分享源代码列表最近浏览
uni-code_0123  LV1 2023年11月11日
jameshkj  LV8 2023年5月18日
人工智能4708  LV11 2023年5月1日
ninini121  LV1 2023年3月28日
Java开发工程师_初心  LV1 2022年12月17日
微信网友_6255804817526784 2022年12月10日
暂无贡献等级
wy1179682217 2022年11月27日
暂无贡献等级
dongzhan  LV12 2021年12月15日
酒非儿  LV6 2021年12月10日
Aoifee  LV4 2021年11月11日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友