了解和掌握好jspSmartUpload组件相关的类是用好这个组件的前提,它主要有4个相关的类:File类、Files类、Request类和SmartUploard类。
jspSmartUpload组件中的File并非JDK中的File类。
1.File类
这个类包装了一个上传文件的所有信息。通过它可以得到上传文件的文件名、文件大小、扩展名及文件数据等信息。它主要有如下几种方法:
(1)saveAs()
用来将文件另存为一个文件,如文件的换名保存。调用方法:
FileOjectName.saveAs(String destFilePathName) 或
FileOjectName.saveAs(String destFilePathName,int saveAsOption)
其中,FileObjectName是生成文件对象的名称;参数destFilePathName是另存为的文件名;参数saveAsOption是另存为的选项,其值有三种,分别是SAVEAS_PHYSICAL, SAVEAS_ VIRTUAL,SAVEAS_AUTO。SAVEAS_PHYSICAL表示以操作系统的根目录为文件根目录的另存文件,SAVEAS_VIRTUAL表示以Web应用程序的根目录为文件根目录的另存文件,SAVEAS_AUTO则表示让组件决定,当Web应用程序的根目录存在另存文件的目录时,它会选择SAVEAS_VIRTUAL,否则会选择SAVEAS_PHYSICAL。如:
FileOjectName.saveAs("/upload/test.doc",SAVEAS_PHYSICAL)
执行后若Web服务器安装在C盘,则另存的文件名实际是c:\upload\test.doc。再如:
FileOjectName.saveAs("/upload/test.doc",SAVEAS_VIRTUAL)
执行后若Web应用程序的根目录是webapps/ROOT,则另存的文件名实际是webapps/ ROOT/upload/test.doc。又如:
FileOjectName.saveAs("/upload/test.doc", SAVEAS_AUTO)
执行时若Web应用程序根目录下存在upload目录,则其效果同saveAs("/upload/ test.doc",SAVEAS_VIRTUAL),否则其效果与如下的语句相同:saveAs("/upload/test.doc", SAVEAS_ PHYSICAL)。
对于Web程序的开发来说,最好使用SAVEAS_VIRTUAL,以方便程序的移植。{#page#]
(2)isMissing()
用于判断用户是否选择了文件,即提交的表单中对应的表单项是否有值,选择了文件时,返回false,未选文件时,返回true。调用方法:
FileOjectName.isMissing()
(3)getFieldName()
得到HTML表单中对应于上传文件的表单项名字。调用方法:
FileOjectName.getFieldName()
(4)getFileName()
取文件名(不含目录信息)。调用方法:
FileOjectName.getFileName()
(5)getFilePathName()
取文件中带目录的全名。调用方法:
FileOjectName.getFilePathName()
(6)getFileExt()
取文件扩展名,即文件名的后缀。调用方法:
FileOjectName.getFileExt()
(7)getSize()
得到文件的长度,单位是字节。调用方法:
FileOjectName.getSize()
(8)getBinaryData()
取文件数据中指定位移处的一个字节,用于检测文件处理。调用方法:
FileOjectName.getBinaryData(int index)
其中参数index表示位移,其值在0到FileOjectName.getSize()-1之间。
2.Files类
Files类表示所有上传文件的集合,通过它可以得到上传文件的数目、大小等信息。有以下方法:
(1)getCount()
取得上传文件的数目。调用方法:
FilesOjectName.getCount()
其中,FilesOjectName是生成的Files类对象的名称。
(2)getFile()
取得指定位移处的文件对象File,实际上是com.jspsmart.upload.File,不是java.io.File,请读者注意区分两者之间的差别。调用方法:
FilesOjectName.getFile(int index)
其中,参数index为指定的位移,其值在0到FilesOjectName.getCount()-1之间。
(3)getSize()
取得上传文件的总长度,可用于限制一次性上传数据量的大小。调用方法:
FilesOjectName.getSize()
(4)getCollection()
将所有上传文件对象以Collection的形式返回,以便其他应用程序引用,浏览上传文件信息。调用方法:
FilesOjectName.getCollection()
(5)getEnumeration()
将所有上传文件对象以Enumeration(枚举)的形式返回,以便其他应用程序浏览上传文件信息。调用方法:
FilesOjectName.getEnumeration()
3.request类
这个类的功能等同于JSP内置的对象request。之所以提供这个类,是因为对于文件上传的表单,通过request对象无法获得表单中文件上传项的值,必须通过jspSmartUpload组件提供的request对象来获取。该类提供如下方法:
(1)getParameter()
获取指定参数的值,当参数不存在时,返回值为null。调用方法:
request.getParameter(String name)
其中,参数name是对应的要获得其值的表单项的名称。
请读者注意区分com.jspsmart.upload.request类与系统的request对象。
(2)getParameterValues()
当一个参数可以有多个值时,用此方法来取其值,它返回的是一个字符串数组,当参数不存在时,返回值为null。调用方法:
request.getarameterValues(String name)
其中,参数name是对应的要获得其值的表单项名称。
(3)getParameterNames()
取得request对象中所有参数的名字,用于遍历所有参数。它返回的是一个枚举型的对象。调用方法:
request.getParameterNames()
4.smartUpload类
这个类完成上传和下载的相关工作。有如下方法:
(1)initialize()
是上传与下载共用的方法。方法执行上传下载的初始化工作,必须第一个执行。其使用格式如下:
smartUploadObjectName.initialize(PageContext pageContext)
该方法无返回值,参数pageContext为JSP页面内置对象,即页面上下文;smartUploadObjectName是生成的smartUpload类对象的名称。
(2)upload()
上传文件使用的方法。用于上传文件数据。对于上传操作,第一步执行initialize方法,第二步执行这个方法。
smartUploadObjectName.upload()
(3)save()
上传文件使用的方法。将全部上传文件保存到指定目录下,并返回保存的文件个数。调用方法:
smartUploadObjectName.save(String destPathName)
或
smartUploadObjectName.save(String destPathName,int option)
其中,参数destPathName为文件保存的目录,option为保存选项,它有三个值,分别是SAVE_PHYSICAL, SAVE_VIRTUAL和SAVE_AUTO。SAVE_PHYSICAL表示组件将文件保存到以操作系统根目录为文件根目录的目录下;SAVE_VIRTUAL表示组件将文件保存到以Web应用程序根目录为文件根目录的目录下;而SAVE_AUTO则表示由组件自动选择,这与File类的saveAs方法的选项值类似。smartUploadObjectName.save(destPathName)作用等同于smartUploadObjectName.save(destPathName,SAVE_AUTO)。
(4)getSize()
上传文件使用的方法。得到上传文件数据的总长度。调用方法:
smartUploadObjectName.getSize()
(5)getFiles()
上传文件使用的方法。取得全部上传文件,以Files对象形式返回,可以利用Files类的操作方法来获得上传文件的数目等信息。调用方法:
smartUploadObjectName.getFiles()
(6)getRequest()
上传文件使用的方法。取得Request对象,以便由此对象获得上传表单参数的值。调用方法:
smartUploadObjectName.getRequest()
(7)setAllowedFilesList()
上传文件使用的方法。设定允许上传带有指定扩展名的文件,当上传过程中有文件名不允许时,组件将抛出异常。调用方法:
smartUploadObjectName.setAllowedFilesList(String allowedFilesList)
其中,参数allowedFilesList为允许上传的文件扩展名列表,各个扩展名之间以逗号分隔。如果想允许上传那些没有扩展名的文件,可以用两个逗号表示。例如:smartUploadObject Name.setAllowedFilesList("doc,txt,,")将允许上传带doc和txt扩展名的文件以及没有扩展名的文件。
(8)setDeniedFilesList()
上传文件使用的方法。用于限制上传带有指定扩展名的文件。若有文件扩展名被限制,则上传时组件将抛出异常。调用方法:
smartUploadObjectName.setDeniedFilesList(String deniedFilesList)
其中,参数deniedFilesList为禁止上传的文件扩展名列表,各个扩展名之间以逗号分隔。如果想禁止上传没有扩展名的文件,可以用两个逗号来表示。例如:smartUploadObject Name.setDeniedFilesList("exe,bat,,")将禁止上传带exe和bat扩展名的文件以及没有扩展名的文件。
(9)setMaxFileSize()
上传文件使用的方法。设定每个文件允许上传的最大长度。调用方法:
smartUploadObjectName.setMaxFileSize(long maxFileSize)
其中,参数maxFileSize为每个文件允许上传的最大长度,单位为字节,当文件超出此长度时,将不能被上传。
(10)setTotalMaxFileSize()
上传文件使用的方法。设定允许上传文件的总长度,用于限制一次性上传的数据量大小。调用方法:
smartUploadObjectName.setTotalMaxFileSize(long totalMaxFileSize)
其中,参数totalMaxFileSize为允许上传文件的总长度,单位为字节。
11)setContentDisposition()
下载文件使用的方法。将数据追加到MIME文件头的CONTENT-DISPOSITION域中。jspSmartUpload组件会在返回下载的信息时自动填写MIME文件头的CONTENT- DISPOSITION域,如果用户需要添加额外信息,请用此方法。调用方法:
smartUploadObjectName.setContentDisposition(String contentDisposition)
其中,参数contentDisposition为要添加的数据。如果contentDisposition为null,则组件将自动添加"attachment;",以表明将下载的文件作为附件,结果是IE浏览器将会提示“另存为”文件,而不是自动打开这个文件。IE浏览器一般根据下载的文件扩展名决定执行的操作,如扩展名为doc将用Word程序打开,扩展名为pdf将用acrobat程序打开,当然客户端要安装有相应的应用软件。
(12)downloadFile()
下载文件使用的方法。用于下载文件。调用方法:
smartUploadObjectName.downloadFile(String sourceFilePathName) 或
smartUploadObjectName.downloadFile(String sourceFilePathName,String contentType) 或
smartUploadObjectName.downloadFile(String sourceFilePathName,String contentType, String destFileName)
其中,第一种方式最常用,后两种用于特殊情况下的文件下载,如更改内容类型,更改另存为的文件名。
参数sourceFilePathName为要下载的文件名,是带目录的文件全名;参数contentType为内容类型(MIME格式的文件类型信息,可被浏览器识别);参数destFileName为下载后默认的另存为的文件名。
分享到:
相关推荐
使用jspSmartUpload组件在jsp中实现上传和下载 在现代Web开发中,文件上传与下载是常见的需求之一,尤其在企业级应用、个人博客、图片分享等场景中尤为重要。jspSmartUpload作为一款专为JSP设计的文件上传组件,以...
**JspSmartUpload组件详解** JspSmartUpload是一款在JSP环境下广泛使用的文件上传组件,它简化了在Web应用中处理文件上传的过程。这个组件由Uriel Janosse开发,提供了一个直观且易于使用的API,使得开发者能够方便...
**jspSmartUpload组件详解** `jspSmartUpload`是一款在Java Web开发中广泛使用的上传组件,它为开发者提供了处理用户文件上传的功能。这个组件的核心在于它简化了文件上传的复杂过程,使得开发者能够方便地在JSP...
本篇文章将深入探讨如何使用SmartUpload组件在Java中实现文件上传,并对比分析使用组件和不使用组件的差异。 首先,不使用组件的文件上传通常涉及到Apache Commons FileUpload库,这是一个强大的工具,可以处理...
File类在SmartUpload组件中通常代表单个上传的文件对象。它包含了关于上传文件的所有信息,如文件名、类型、大小、临时存储路径等。开发者可以使用File类的方法来获取和操作上传文件的属性,例如检查文件大小、验证...
在IT行业中,文件上传是...通过以上对SmartUpload组件中文无乱码特性的分析,我们可以看到其在处理多语言环境中的优势。对于需要处理中文文件名的项目,选择SmartUpload可以大大降低乱码问题带来的困扰,提升用户体验。
例如,用户上传的文件可以通过jspSmartUpload组件处理,然后利用JavaMail发送邮件附带文件;同时,可以用iText将报表数据转化为PDF格式,而jFreechart则可以生成报表的可视化图表。所有这些组件都是开源的,有着活跃...
SmartUpload是一款强大的Java上传组件,它提供了便捷的文件上传解决方案,广泛应用于各类Web应用中。下面,我们将深入探讨SmartUpload的工作原理、使用方法以及实际开发中的常见问题。 SmartUpload的设计理念在于...
标题中的“web笔记 —— smartupload”指的是一个关于Web开发中的文件上传技术的笔记,主要聚焦于SmartUpload组件。SmartUpload是一款强大的Java上传组件,它为Web应用提供了方便的文件上传功能,支持多文件上传、...
《深入解析jspSmartUpload:中文完美支持的上传组件》 在Web开发中,文件上传功能是不可或缺的一部分。尤其是在处理多语言环境时,确保文件名和相关信息的正确显示尤为重要。`jspSmartUpload`就是一个专为Java Web...
当用户在表单中选择文件并提交时,JSpsmartupload组件会捕获HTTP请求,然后将文件内容从请求中分离出来,存储到服务器的指定位置。同时,它还处理了文件大小限制、类型验证等安全问题,避免了常见的上传攻击。 3. ...
5. **源码分析**:作为开源工具,`jspsmartupload` 的源码可以被开发者查看和学习,这对于深入理解文件上传的处理机制以及如何处理中文乱码问题非常有帮助。 通过使用`jspsmartupload.jar`,开发者可以避免花费大量...
总之,JSPSmartUpload组件为JSP开发中的文件上传和下载提供了便利,通过深入研究源码和文档,开发者可以更好地理解文件上传下载的原理,提高开发效率。同时,提供的实例和帮助文件使得学习和应用变得更加直观和简单...
"Smartupload_and_commons-fileupload.rar_smartupload"这个压缩包文件涉及了两个著名的Java文件上传库——SmartUpload和Apache Commons FileUpload的对比分析。这两个库都为Java开发者提供了方便的文件上传解决方案...
JSP Smart Upload是早期流行的一个用于Java Web应用的文件上传组件,它允许用户通过网页上传多个文件。然而,当文件名包含非ASCII字符,比如中文字符时,可能会出现乱码问题。 这个问题的根本原因在于字符编码的不...
### jspSmartUpload组件详解:实现简易的...通过上述分析,我们深入了解了jspSmartUpload组件的特性、安装流程、核心类的使用方法,这将有助于开发者高效地实现文件上传与下载功能,同时确保文件处理的安全性和灵活性。
`SmartUpload`是一个流行的Java上传组件,它简化了文件上传的过程,并处理了相关的细节,如多文件上传、文件大小限制、错误处理等。本实例将深入讲解如何使用`SmartUpload`框架来实现资源的上传。 首先,我们需要...
总之,jspSmartUpload是一个强大而灵活的文件上传解决方案,它的源码分析有助于开发者掌握文件上传技术,提高Web应用的功能和用户体验。通过提供的示例和源码,开发者可以快速上手并根据实际需求进行定制化开发。
JspSmartUpload是一个在Java Web开发中常用的上传组件,它为JSP页面提供了方便的文件上传功能。在早期的Web应用中,由于浏览器与服务器之间的交互限制,文件上传通常需要复杂的处理,而JspSmartUpload则简化了这个...
在JavaWeb开发中,文件上传功能是一项常见的需求,JSPSmartUpload.jar是一款专为JavaWeb设计的文件上传组件,它支持中文文件名,使得在处理中文文件时更加便捷。本篇文章将详细探讨JSPSmartUpload.jar的工作原理、...