web程序设计JSP实现图片上传_第1页
web程序设计JSP实现图片上传_第2页
web程序设计JSP实现图片上传_第3页
web程序设计JSP实现图片上传_第4页
web程序设计JSP实现图片上传_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、webweb程序设计第程序设计第6 6章章 JSPJSP实现图片上实现图片上传传6.1 文件上传组件介绍 文件上传组件是一些开源组织发布的针对实现文件上传功能的一组class文件。jspSmartUpload和Apache的common-fileupload是两个比较流行的文件上传组件。这两个组件都可以在JSP中实现文件上传。本节使用Apache的common-fileupload组件实现图片上传。6.1.1 HTML中文件上传组件介绍 HTML中元素可以创建文件上传组件。该控件带有一个文本框和浏览按钮。使用该组件时要注意以下几点。 该元素必须出现在form表单内。 必须为该元素的name属性

2、指定属性值。 form的method方法必须设置为post。 form元素enctype标签属性值必须设置为multipart/form-data。要处理上载到服务器的文件,服务器必须有可以处理multipart/form-data提交的进程。6.1.2 common-fileupload组件简介common-fileupload组件是apache的开源项目之一。用该组件可实现一次上传一个或多个文件,并可限制文件大小。可以从/commons/ fileupload/下载到该组件。该组件在许多其他开源项目中被使用,如struts、WebWork等。

3、该组件由几个核心类组成,下面对这几个类进行简单的介绍。(1)DiskFileUpload类。(2)FileItem类用来封装单个表单字段元素的数据,一个表单字段元素对应一个FileItem对象,通过调用FileItem对象的方法可以获得相关表单字段元素的数据。(3)FileUploadException类。在文件上传过程中,可能发生各种各样的异常,如网络中断、数据丢失等。为了对不同异常进行适当的处理,Apache文件上传组件还开发了4个异常类,其中FileUploadException是其他异常类的父类,其他几个类只是被间接调用的底层类,对于Apache组件调用人员来说,只需对FileUplo

4、adException异常类进行捕获和处理即可。6.1.3 文件在服务器端的存储形式 在本章开始处已经提到,在服务器端存储文件主要有两种方式:磁盘存储和数据库存储。在这里使用的是后者,利用数据库存储来将图片上传到服务器端。 这两种存储方式各有利弊。利用数据库来存储这些资源会导致数据库的处理效率降低,但相对安全。利用磁盘来存储图片资源安全性相对来说比较低,但不会影响到处理的效率。 本书利用数据库来存储上传的图片信息。对于图片这种大文件,数据库中提供了专用字段类型来存储,如BLOB、MEDIUMBLOB、LONGBLOB。6.2 JSP中处理图片数据信息 本节主要介绍上传界面的设计,以及在JSP中

5、对图片数据的处理和与数据库的交互。分步介绍会帮助大家对每一个步骤都有深入的了解。6.2.1 页面的设计与实现本章中的实例需要有以下几个JSP页面,上传页面、图片列表页面和图片显示页面。(1)上传页面提供文件上传功能。该页面中有以下几个HTML标记元素。(2)图片列表页面将已经上传到服务器中的图片全部显示在页面中,图片名称以超链接形式显示在页面中,单击该超链接可以显示该图片名称对应的图片内容。(3)图片显示页面,负责图片内容的显示,6.2.2 文件上传处理上传页面可以进行图片上传操作。图片先被上传到服务器,再被文件上传处理程序进行处理,最后存储到数据库中,前面已经对common-fileuplo

6、ad组件进行了简单介绍,也对该组件中的几个关键类进行了讲解。在实现文件上传处理过程中,主要使用到了DiskFileUpload类和FileItem类,6.2.3 查询图片列表 从数据库中得到所有的上传图片信息,并且将结果显示在页面上。图片名称字段是以超链接形式显示在页面中的。这样的目的是要通过单击该超链接来显示该图片的内容。 执行以上代码便可以从数据库中得到所有的上传图片信息,并且将结果显示在页面上。在上面的代码中,图片名称字段是以超链接形式显示在页面中的。这样的目的是要通过单击该超链接来显示该图片的内容。6.2.4 图片内容显示 在上面代码中,从数据库中读取的图片内容是以Blob形式返回。B

7、lob是内置类型,它将二进制大对象(Binary Large Object)存储为数据库表某一行中的一个列值。该类型有几个常用方法, ServletResponse.getOutputStream()方法提供了一种输出流,用于向客户端发送二进制数据。ServletOutputStream对象通常通过ServletResponse.getOutputStream()方法获取。6.3 完整的图片上传与读取显示的实现本章中以上两小节中介绍了在JSP中如何实现图片的上传和显示。在图片上传时使用到了Apache的common-fileupload组件。图片读取显示时使用到了Blob、ServletOutputStream等类。本节借助以上两小节介绍的知识点来完成完整的实现网站上传和读取显示图片功能,步骤如下所示。6.4 小结common-fileupload组件提供了实现文件上传的功能,在JSP中可以借用该组件来实现图片上传的功能。本章通过使用common-fileupload组件来实现图片的上传。该组件主要使用DiskFileUpload和FileItem两个核心类来实现文件上传功能。熟悉并掌握这两个类中的关键方法将有助于学习JSP中实现图片上传技术。本章中也涉及到了数据库中存储大类型数据的知识,在SQL Server 2000数据库中提供了BLOB、MEDIUMBLO

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论