您的位置:首页 > Web前端 > HTML

使用HTML的表单form上传文件,需要考虑的几个问题

2014-08-08 13:22 1026 查看
应用系统中经常需要有文件上传功能,一般的做法都是使用HTML的<form>和<input type="file">,或者使用第三方文件上传组件,如swfupload和uploadify。我们都知道如果向服务器提交数据,一般来说都是使用POST请求,请求数据会放在请求体中,以key1=value1&key2=value2的形式。这样的报文,服务器是很容易解析的。如果是上传文件,通过httpwatch抓包工具,我们可以发现:文件的内容也是放在post请求体中的。



我们知道,提交一个form的时候,可以同时上传文件和提交参数值。这就引出了一个问题:请求参数值和文件内容都是在post请求体中的,服务器必须要能识别报文中,哪些是参数值,哪些是文件内容?http协议是怎么解决这个问题的呢?可以查看rfc1867文档:Form-based
File Upload in HTML。还有下面的2篇博客

http://www.cnblogs.com/chy710/archive/2010/02/22/1671007.html

/article/1400054.html

很好的讲解了实现细节。如果了些报文细节,我们就可以使用HttpClient等开源组件,自行构建请求报文,实现文件上传。我们知道http请求是无状态的,连接保持时间不能太长。因此如何实现高效、健壮的文件上传,需要考虑很多细节,需要了解http协议的一些头部如ContentType,keep alive等机制。



实现了基本的上传功能后,一般还需要考虑大文件如何上传?如何实现断点上传?如何实现异步上传?多文件一起上传?等等。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: