《JSP实现多个文件上传的两种方法.docx》由会员分享,可在线阅读,更多相关《JSP实现多个文件上传的两种方法.docx(2页珍藏版)》请在三一办公上搜索。
1、JSP 实现多个文件上传的两种方法JSP 实现多个文件上传的两种方法 JSP实现文件上传的实现方式是这样的:使用ServletRequest类的getInputStream方法获得一个客户端向服务器发出的数据流,然后处理这个数据流,从中分析得到文件上传中传递到服务器的各个参数和数据,然后将其中的文件数据存储为一个文件或插入到数据库中。 通常JSP页面中不处理文件的上传功能,而是把这些功能放到Servlet 或JavaBean中去实现。使用Servlet完成文件上传的例子在其他JSP书籍中有所介绍,这里只介绍使用JeanBean是如何完成文件上传的。 JSP中实现文件的上传可以采用两种方式即采用
2、HTTP协议和FTP协议实现,二者在传输的原理上存在很大的差异。以下将结合源代码对它们的实现做简单介绍,相信读者会从中有所收获。 在JSP中使用JavaBean实现基于Web的文件上传功能一般需要三种文件结合完成。这三种文件分别是提供界面的HTML页面文件、完成调用实现上传功能的JavaBean的JSP文件和实现JavaBean的Java的类文件。 1采用HTTP协议实现多个文件的上传 在过去的HTML页面中,表单不能实现文件的上传,这多少限制了一些网页的功能。RFC1867规范对表单作出了扩展,增加了一个表单元素。通过使用这个元素,浏览器会自动生成一个输入框和一个按钮,输入框可供用户填写本地
3、的文件名和路径名,按钮可以让浏览器打开一个文件选择框供用户选择文件。具体的表单实现如下: 选择了文件后直接输入本地文件的绝对路径,表单的action属性值是*.jsp,这意味着请求将发送给*.jsp文件。在这个过程中实际上就实现了HTTP方式的文件上载。文件从客户端到服务器的上传是由HTTP协议的通用网关界面(CGI)支持的。这种上载方式要求浏览器和WEB服务器两方面都能够支持Rfc1867。JavaBean 通过ServletRequest类的getInputStream方法获得一个客户端向服务器发出的数据流、分析上传的文件格式,根据分析结果将多个文件依次输出服务器端的目标文件中。 2采用F
4、TP协议实现多个文件的上传 FTP协议是Internet上用来传送文件的协议,规定了Internet上文件互相传送的标准。在Java中实现这一功能是借助FtpClient类完成的。具体实现过程:首先与FTP服务器建立连接。然后初始化文件的传输方式,包括ASCII和BINARY两种方式。将文件输出到文件输入流FileInputStream中,FileInputStream中的数据读入字节数组中,字节数组中的数据写入输出流。这样和源文件同名的一个文件就复制到了服务器端。 以上两种方式,采用FTP协议实现多个文件的上传比较容易实现。利用FTP协议上传文件一般是编写的客户端程序,服务器端的安全设置会比较复杂;而利用HTTP协议上传文件则是服务器端的应用程序,相对来说安全设置会比较简单。 通过测试发现FTP上传方式在传输大文件时速度是HTTP上传方式的几十倍甚至几百倍,但在传输小于1M的文件时却比HTTP上传方式稍慢一些。所以两种传输方式各有优势。