上传下载全攻略jspSmartUpload
疯狂代码 CrazyCoder/ ĵ:http:/CrazyCoder/Java/Article7937.html
、安装篇
jspSmartUpload是由www.jspsmart网站WebSite开发个可免费使用全功能文件上传下载组件适于嵌入执行上传下载操作JSP文件中该组件有以下几个特点:
1、使用简单在JSP文件中仅仅书写 3 5行JAVA代码就可以搞定文件上传或下载方便
2、能全程控制上传利用jspSmartUpload组件提供对象及其操作思路方法可以获得全部上传文件信息(包括文件名大小类型扩展名文件数据等)方便存取
3、能对上传文件在大小、类型等方面做出限制如此可以滤掉不符合要求文件
4、下载灵活仅写两行代码就能把Web服务器变成文件服务器不管文件在Web服务器目录下或在其它任何目录下都可以利用jspSmartUpload进行下载
5、能将文件上传到数据库中也能将数据库中数据下载下来这种功能针对是MYSQL数据库不具有通用性所以本文不准备举例介绍这种使用方法
jspSmartUpload组件可以从www.jspsmart网站WebSite上自由下载压缩包名字是jspSmartUpload.zip下载后用WinZip或WinRAR将其解压到Tomcatwebapps目录下(本文以Tomcat服务器为例进行介绍)解压后将webapps/jspsmartupload目录下子目录Web-inf名字改为全大写WEB-INF这样改jspSmartUpload类才能使用Tomcat对文件名大小写敏感它要求Web应用相关类所在目录为WEB-INF且必须是大写接着重新启动Tomcat这样就可以在JSP文件中使用jspSmartUpload组件了
getsavefilename 注意按上述思路方法安装后只有webapps/jspsmartupload目录下可以使用jspSmartUpload组件如果想让Tomcat服务器所有Web应用都能用它必须做如下工作:
1.进入命令行状态将目录切换到Tomcatwebapps/jspsmartupload/WEB-INF目录下
2.运行JAR打包命令:jar cvf jspSmartUpload.jar com
(也可以打开资源管理器切换到当前目录用WinZip将com目录下所有文件压缩成jspSmartUpload.zip然后将jspSmartUpload.zip换名为jspSmartUpload.jar文件即可)
3.将jspSmartUpload.jar拷贝到Tomcatshared/lib目录下
2、相关类介绍说明篇
File类
这个类包装了个上传文件所有信息通过它可以得到上传文件文件名、文件大小、扩展名、文件数据等信息
File类主要提供以下思路方法:
1、saveAs作用:将文件换名另存
原型:
public void saveAs(java.lang.String destFilePathName)
或
public void saveAs(java.lang.String destFilePathName, optionSaveAs)
其中destFilePathName是另存文件名optionSaveAs是另存选项该选项有 3个值分别是
SAVEAS_PHYSICAL,SAVEAS_VIRTUALSAVEAS_AUTOSAVEAS_PHYSICAL表明以操作系统根目录为文件根目录另存文件SAVEAS_VIRTUAL表明以Web应用根目录为文件根目录另存文件SAVEAS_AUTO则表示让组件决定当Web应用根目录存在另存文件目录时它会选择SAVEAS_VIRTUAL否则会选择SAVEAS_PHYSICAL
例如saveAs("/upload/sample.zip",SAVEAS_PHYSICAL)执行后若Web服务器安装在C盘则另存文件名实际是c:\\upload\\sample.zip而saveAs("/upload/sample.zip",SAVEAS_VIRTUAL)执行后若Web应用根目录是webapps/jspsmartupload则另存文件名实际是
webapps/jspsmartupload/upload/sample.zipsaveAs("/upload/sample.zip",SAVEAS_AUTO)执行时若Web应用根目录下存在upload目录则其效果同saveAs("/upload/sample.zip",SAVEAS_VIRTUAL)否则同saveAs("/upload/sample.zip",SAVEAS_PHYSICAL)
建议:对于Web开发来说最好使用SAVEAS_VIRTUAL以便移植
2、isMissing
作用:这个思路方法用于判断用户是否选择了文件也即对应表单项是否有值选择了文件时它返回false未选文件时它返回true
原型:public boolean isMissing
3、getFieldName
作用:取HTML表单中对应于此上传文件表单项名字
原型:public String getFieldName
4、getFileName
作用:取文件名(不含目录信息)
原型:public String getFileName
5、getFilePathName
作用:取文件全名(带目录)
原型:public String getFilePathName
6、getFileExt
作用:取文件扩展名(后缀)
原型:public String getFileExt
7、getSize
作用:取文件长度(以字节计)
原型:public getSize
8、getBinaryData
作用:取文件数据中指定位移处个字节用于检测文件等处理
原型:public getBinaryData( index)其中index表示位移其值在0到getSize-1的间
Files类
这个类表示所有上传文件集合通过它可以得到上传文件数目、大小等信息有以下思路方法: 1、getCount
作用:取得上传文件数目
原型:public getCount
2、getFile
作用:取得指定位移处文件对象File(这是com.jspsmart.upload.File不是java.io.File注意区分) 原型:public File getFile( index)其中index为指定位移其值在0到getCount-1的间
3、getSize
作用:取得上传文件总长度可用于限制次性上传数据量大小
原型:public long getSize
4、getCollection
作用:将所有上传文件对象以Collection形式返回以便其它应用引用浏览上传文件信息
原型:public Collection getCollection
5、getEnumeration
作用:将所有上传文件对象以Enumeration(枚举)形式返回以便其它应用浏览上传文件信息
原型:public Enumeration getEnumeration
Request类
这个类功能等同于JSP内置对象request只所以提供这个类是对于文件上传表单通过request对象无法获得表单项值必须通过jspSmartUpload组件提供Request对象来获取该类提供如下思路方法:
1、getParameter
作用:获取指定参数的值当参数不存在时返回值为null
原型:public String getParameter(String name)其中name为参数名字
2、getParameterValues
作用:当个参数可以有多个值时用此思路方法来取其值它返回是个串当参数不存在时返回值为null
原型:public String getParameterValues(String name)其中name为参数名字
3、getParameterNames
作用:取得Request对象中所有参数名字用于遍历所有参数它返回是个枚举型对象
原型:public Enumeration getParameterNames
SmartUpload类这个类完成上传下载工作
A.上传和下载共用思路方法:
只有个:initialize
作用:执行上传下载化工作必须第个执行
原型:有多个主要使用下面这个:
public final void initialize(javax.servlet.jsp.PageContext pageContext)
其中pageContext为JSP页面内置对象(页面上下文)
B.上传文件使用思路方法:
1、upload
作用:上传文件数据对于上传操作第步执行initialize思路方法第 2步就要执行这个思路方法
原型:public void upload
2、save
作用:将全部上传文件保存到指定目录下并返回保存文件个数
原型:public save(String destPathName)
和public save(String destPathName, option)
其中destPathName为文件保存目录option为保存选项它有 3个值分别是SAVE_PHYSICAL,SAVE_VIRTUAL和SAVE_AUTO(同File类saveAs思路方法选项的值类似)SAVE_PHYSICAL指示组件将文件保存到以操作系统根目录为文件根目录目录下SAVE_VIRTUAL指示组件将文件保存到以Web应用根目录为文件根目录目录下而SAVE_AUTO则表示由组件自动选择
注:save(destPathName)作用等同于save(destPathName,SAVE_AUTO)
3、getSize
作用:取上传文件数据总长度
原型:public getSize
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论