首页 理论教育文件上传|Web网站构建与程序设计实训教程

文件上传|Web网站构建与程序设计实训教程

【摘要】:文件上传是指将客户机上的文件通过网络传送到服务器上。在S_File.jsp页面,单击“浏览”按钮,选择A.txt文件后单击“上传”按钮,则将上传的数据保存到服务器端的resin安装目录下的“B.txt”文件中。图4-9 文件上传不难看出,相对“A.txt”文件的内容,“B.txt”文件中前面多了4行、结尾多了5行。这是因为使用HTTP上传文件时,上传的数据中除了上传的文件内容外还包括HTTP头数据。

文件上传是指将客户机上的文件通过网络传送到服务器上。客户机上的文件指定和上传是通过HTML<form>表单实现的,如程序“S_File.jsp”中“name="f1"”的<form>表单示例,其中,“action="FileAccept.jsp"”表示服务器上接收和处理上传的文件的程序是与“S_File.jsp”在同一目录下的“FileAccept.jsp”;<form>表单的属性enctype的值必须为multi-part/form-data,<form>体中<input>标记的属性type的值必须是file。“S_File.jsp”运行后的界面如图4-9所示:假定,要上传的文件是“A.txt”,可以单击“浏览”按钮,选择客户机文件夹中的“A.txt”文件,然后单击“上传”按钮则文件被发送到服务器并启动“FileAccept.jsp”程序进行接收和处理。客户端发送到服务器的数据一般有两大部分:一部分是HTTP数据头,另一部分是HTTP数据体。被传送的文件(如“A.txt”)包含在数据体中。“FileAccept.jsp”中,语句

978-7-111-38219-5-Chapter04-33.jpg

就是使用JSP内置对象request的方法getInputStream()获取字节输入流,用以读入客户端发送来的数据。语句

978-7-111-38219-5-Chapter04-34.jpg

生成一字节输出流,数据输出到resin安装目录下的“B.txt”文件中。

假定客户端计算机的F盘上有“A.txt”文件。“A.txt”文件的内容是

欢迎使用HTML、JavaScript、JSP语言进行web程序开发。

这是文件上传的例子。

这里要将“A.txt”文件上传。

使用“记事本”分别输入“S_File.jsp”和“FileAccept.jsp”程序并存放在应用目录“we-bapps/ROOT”下的“E41”目录中。(www.chuimin.cn)

在浏览器地址栏中输入http://192.168.2.1:8080/E41/S_File.jsp。在S_File.jsp页面,单击“浏览”按钮,选择A.txt文件后单击“上传”按钮,则将上传的数据保存到服务器端的resin安装目录下的“B.txt”文件中。“S_File.jsp”页面及B.txt文件的内容如图4-9所示。

978-7-111-38219-5-Chapter04-35.jpg

图4-9 文件上传

不难看出,相对“A.txt”文件的内容,“B.txt”文件中前面多了4行、结尾多了5行。这是因为使用HTTP上传文件时,上传的数据中除了上传的文件内容外还包括HTTP头数据。可以在“FileAccept.jsp”程序中增加进一步处理“B.txt”文件的语句:①打开“B.txt”文件;②读出被传送文件的文件名“A.txt”;③读出被传送文件的内容;④以被传送文件的文件名“A.txt”保存到服务器上。

S_File.jsp:

978-7-111-38219-5-Chapter04-36.jpg

FileAccept.jsp:

978-7-111-38219-5-Chapter04-37.jpg