| |
用javabean实现文件上载(2) 打开demo.out文件,我们可以看到如下内容:
-----------------------------7d15340138 content-disposition: form-data; name="author"
a. christie -----------------------------7d15340138 content-disposition: form-data; name="company"
abisco -----------------------------7d15340138 content-disposition: form-data; name="filename"; filename="c:/123data/abisco.html" content-type: text/html
<html> <head> <title>abisco</title> </head> </html>
-----------------------------7d15340138--
可以看到,http请求体内包含了所有的表单输入,包括上载的文件。这些输入数据的分隔由一个分隔符实现。分隔符由一系列的“-”字符和一个随机数字构成。在上面的例子中,分隔符为“-----------------------------7d15340138”。最后一个分隔符结束请求体,这个分隔符的后面多出两个“-”符号。
对于非文件类型的输入数据,分隔符后面跟着下面这行内容:content-disposition: form-data; name=inputname。其中inputname是表单元素的名字。例如:content-disposition: form-data; name="author"。在这行内容的后面,紧跟着两个连续的回车换行符和表单元素值。
而对于文件型输入域,分隔符的后面有两行内容。第一行内容包含输入元素的名字以及上载文件在客户端的完整路径,如上例中这行内容是“content-disposition: form-data; name="filename"; filename="c:/123data/abisco.html"”。这行内容指出文件输入元素的名字是filename,文件的路径是“c:/123data/abisco.html”。注意windows浏览器会设置文件路径,而unix/linux以及mac浏览器只发送文件名字。
第二行包含了文件的内容类型,因此它的具体内容和上载的文件有关。本例中第二行的内容是“content-type: text/html”。
和非文件输入元素一样,文件内容在两个连续的回车换行符之后正式开始。 (未完待续)
|
|