查看文章 |
http协议中的 multipart格式
2008-03-17 22:12
如果要在客户端向服务器上传文件,我们就必须用POST
multipart/form-data类型的请求,Content-Type必须是multipart/form-data。 以multipart/form-data编码的POST请求格式与application/x-www-form-urlencoded完全不同,multipart/form-data需要首先在HTTP请求头设置一个分隔符,例如ABCD: 然后,将每个字段用“--分隔符”分隔,最后一个“--分隔符--”表示结束。例如,要上传一个title字段"Today"和一个文件C:\1.txt,HTTP正文如下: --ABCD Content-Disposition: form-data; name="title" \r\n Today --ABCD Content-Disposition: form-data; name="1.txt"; filename="C:\1.txt" Content-Type: text/plain \r\n <这里是1.txt文件的内容> --ABCD-- \r\n 请注意,每一行都必须以\r\n结束,包括最后一行。如果用Sniffer程序检测IE发送的POST请求,可以发现IE的分隔符类似于--- ------------------------7d4a6d158c9,这是IE产生的一个随机数,目的是防止上传文件中出现分隔符导致服务器无法正 确识别文件起始位置。我们可以写一个固定的分隔符,只要足够复杂即可。 |
最近读者: