java基础教程smartupload全攻略jspSmartUpload是由网浏览开发的一个可使用_第1页
java基础教程smartupload全攻略jspSmartUpload是由网浏览开发的一个可使用_第2页
java基础教程smartupload全攻略jspSmartUpload是由网浏览开发的一个可使用_第3页
java基础教程smartupload全攻略jspSmartUpload是由网浏览开发的一个可使用_第4页
java基础教程smartupload全攻略jspSmartUpload是由网浏览开发的一个可使用_第5页
免费预览已结束,剩余9页可下载查看

下载本文档

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

文档简介

一、安装spmarUpoad是由 网浏览开发的一个可浏览使用的全功能的文件上传浏览组件,于嵌入执行上传操作的JSP文件中。该组件有以下几个特点:1、使用简单。在JSP文件中仅仅书写三五行JAVA代码就可以搞定文件的上传或,方便2、能全程控制上传。利用jspSmartUpload组件提供的对象及其操作方法,可以获得全部上传文件的信(包括文件名,大小,类型,扩展名,文件数据等),方便存3、能对上传的文件在大小、类型等方面做出限制。如此可以滤掉不符合要求的文件4、灵活。仅写两行代码,就能把Web服务器变成文件服务器。不管文件在Web服务器的 下,都可以利用jspSmartUpload进行。5、能将文件上传到数据库中,也能将数据库中的数据下来。这种功能针对的是YQL数据库,因为不具有通用性,所以本文备举例介绍这种用法。spmarUpoad组件可以从 上自由,压缩包的名字是spmarUpoadzp。下载后,用浏览或浏览将其解压到omcat的webapps 下(本文以Tomcat服务器为例进行介绍)。解压后,将webappsspsmarupoad 下的子 eb-nf名字改为全大写的WB-IN,这样一改spmarUpoad类才能使用。因为omcat对文件名大小写敏感,它要求eb应用程序相关的类所在 为-IN,且必须是大写。接着重新启动omcat,这样就可以在JSP文件中使用spmartUpoad组件了。注意,按上述方法安装后,只有webapps/jspsmartupload 下的程序可以使用jspSmartUpload组件,如果想让Tomcat服务器的所有Web应用程序都能用它,必须做如下工作:进入命令行状态, 切换到Tomcat的webapps/jspsmartupload/WEB- 下运行JAR打包命令:jarcvfjspSmartUpload.jar(也可以打开资源管理器,切换到当 ,用WinZip将 下的所有文件压缩jspSmartUpload.zip,然后将jspSmartUpload.zip换名为jspSmartUpload.jar文件即可。将jspSmartUpload.jar拷贝到Tomcat的shared/lib File这个类包装了一个上传文件的所有信息。通过它,可以得到上传文件的文件名、文件大小、扩展名、文件数据等信息。File类主要提供以下方法1、saveAs作用:将文件换名另存。publicvoidsaveAs(java.lang.String或publicvoidsaveAs(java.lang.StringdestFilePathName,int其中,destFilePathName是另存的文件名,optionSaveAs是另存的选项,该选项有三个值,分别SAVEAS_PHYSICAL,SAVEAS_VIRTUAL,SAVEAS_AUTO。SAVEAS_PHYSICAL表明以浏览的 另存文件,SAVEAS_VIRTUAL表明以Web应用程序的根 SAVEAS_AUTO则表示让组件决定,当Web应用程序的根 SAVEAS_VIRTUAL,否则会选择SAVEAS_PHYSICAL。例如,saveAs(upoadsampezpAVA_HYICA)执行后若eb服务器安装在C盘,则另存的文件名实际是c:\upoadsampezp。而saveAs(upoadsampezpAVA_VIRUA)执行后若eb应用程序的根是webapps/jspsmartupload,则另存的文件名实际是webapps/jspsmartupload/upload/sample.zip。saveAs("/upload/sample.zip",SAVEAS_AUTO)执行时若Web应用程序根 下存在upload saveAs("/upload/sample.zip",SAVEAS_PHYSICAL)建议:对于Web程序的开发来说,最好使用SAVEAS_VIRTUAL,以便移植2、作用:这个方法用于判断用户是否选择了文件,也即对应的表单项是否有值。选择了文件时,它返回fase。未选文件时,它返回rue。原型:publicbooleanisMissing()作用:取HTL原型:pubctrnggeedName()4、 原型:publicStringgetFileName()作用:取文件全名( 原型:publicStringgetFilePathName原型:publicStringgetFileExt()原型:publicintgetSize()8、作用:取文件数据中指定位移处的一个字节,用于检测文件等处理原型:publicbytegetBinaryData(intindex)。其中,index表示位移,其值在0到getSize()-1之间Files这个类表示所有上传文件的集合,通过它可以得到上传文件的数目、大小等信息。有以下方1、作用:取得上传文件的数目原型:publicintgetCount()作用:取得指定位移处的文件对象e(这是comspsmaruploade,不是avaoe,注意区分。原型:pubciegeie(ntndex)。其中,ndex为指定位移,其值在0到geCoun()-1之间。3、作用:取得上传文件的总长度,可用于限制上传的数据量大小。原型:pubconggeze()4、作用:将所有上传文件对象以Coecon的形式返回,以便其它应用程序,浏览上传文件信息。原型:pubcCoecongeCoecon()5、作用:将所有上传文件对象以numeraon(枚举)的形式返回,以便其它应用程序浏览上传文件信息。原型:pubcnumeraongenumeraon()Request这个类的功能等同于JSP内置的对象request。只所以提供这个类,是因为对于文件上传表单,通过request对象无法获得表单项的值,必须通过spmarUpoad组件提供的Request对象来获取。该类提供如下方法:1、作用:获取指定参数之值。当参数不存在时,返回值为null原型:publicStringgetParameter(Stringname)。其中,name为参数的名字2、作用:当一个参数可以有多个值时,用此方法来取其值。它返回的是一个字符串数组。当参数不存在时,返回值为nu。原型:publicString[]getParameterValues(Stringname)。其中,name为参数的名字3、作用:取得Request对象中所有参数的名字,用于遍历所有参数。它返回的是一个枚举型的对象。原型:pubcnumeraongearameerNames()㈣SmartUpload类这个类完成上传工作A.上传与共用的方法:作用:执行上传的初始化工作,必须第一个执行原型:有多个,主要使用下面这个:publicfinalvoidinitialize(javax.servlet.jsp.PageContextpageContext)其中,pageContext为JSP页面内置对象(页面上下文。1、作用:上传文件数据。对于上传操作,第一步执行nalze方法,第二步就要执行这个方法。原型:pubcvodupoad()2、 原型:publicintsave(StringdestPathName)和publicintsave(StringdestPathName,int其中,destPathName为文件保 ,option为保存选项,它有三个值,分别是SAVE_PHYSICAL,SAVE_VIRTUALSAVE_AUTO(同File类的saveAs方法的选项之值类似)SAVE_PHYSICAL指示组件将文件保存到以操作系为文件 下,SAVE_VIRTUAL指示组件将文件保存到以Web应用程序 为文件 下,SAVE_AUTO则表示由组件自动选择注:save(destPathName)作用等同于save(destPathName,SAVE_AUTO)。原型:publicintgetSize()4、作用:取全部上传文件,以es对象形式返回,可以利用es类的操作方法来获得上传文件的数目等信息。原型:pubciesgeies()5、作用:取得Request原型:pubcRequestgeReques()6、作用:设定允许上传带有指定扩展名的文件,当上传过程中有文件名不允许时,组件将抛出异常原型:publicvoidsetAllowedFilesList(String其中,aowediesst为允许上传的文件扩展名列表,各个扩展名之间以逗号分隔。如果想允许上传那些没有扩展名的seAowediess("docx,,")将允许上传带doc和xt扩展名的文件以及没有扩展名的文件。7、作用:用于限制上传那些带有指定扩展名的文件。若有文件扩展名被限制,则上传时组件将抛出异常原型:publicvoidsetDeniedFilesList(String其中denedesLst为上传的文件扩展名列表各个扩展名之间以逗号分隔如果想上传那些没有扩展名的文件,可以用两个逗号来表示。例如:seDenedesLs(exeba)将上传带exe和bat扩展名的文件以及没有扩展名的文件。8、作用:设定每个文件允许上传的最大长度原型:publicvoidsetMaxFileSize(long其中,maxFileSize为为每个文件允许上传的最大长度,当文件超出此长度时,将不被上传9、作用:设定允许上传的文件的总长度,用于限制上传的数据量大小原型:publicvoidsetTotalMaxFileSize(long其中,totalMaxFileSize为允许上传的文件的总长度C.文件常用的方1、作用:将数据追加到MIME文件头的CONTENT-DISPOSITION域。jspSmartUpload组件会在返回的信息时自动填写MIME文件头的CONTENT-DISPOSITION域,如果用户需要添加额外信息,请用此方法。原型:publicvoidsetContentDisposition(StringconenDsposon为要添加的数据。如果conenDsposon为nuaaen件作为附件,结果是IE浏览器将会提示另存文件,而不是自动打开这个文件(IE浏览器一般根据的文件扩展名决定执行什么操作,扩展名为doc的将用浏览程序打开,扩展名为pdf的将用acrobat程序打开,等等。2、作用:文件原型:共有以下三个原型可用,第一个最常用后两个用于特殊情况下的文件(如更改内容类型更改另存的文件名。①publicvoiddownloadFile(String其中,sourceFilePathName为要的文件名( 的文件全名②publicvoiddownloadFile(StringsourceFilePathName,String其中,sourceFilePathName为要的文件名(带的文件全名),contentType为内容类型(MIME格式的文件类型信③publicvoiddownloadFile(StringsourceFilePathName,StringcontentType,String其中sourceeahName为要的文件名(带 的文件全名conenype为内容类(IE格式的文件类型信息,可被浏览器识别)deseName为后默认的另存文件名。三、文件上传单要对于上传文件的FORM表单,有两个要求1、METHOD应用POST,即METHOD="POST"2、增加属性:ENCTYPE="multipart/form-下面是一个用于上传文件的FORM表单的例子<FORMMETHOD="POST"ENCTYPE="multipart/form-data"<INPUTTYPE="FILE"<INPUT传的1、上传页面本页面提供表单,让用户选择要上传的文件,点击"上传"按钮执行上传操作页面源码如下<!-文件名作者:浏览制作中心 --<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01<title>文件上传<metahttp-equiv="Content-Type"content="text/html;<p>&<palign="center">上传文件选择<FORMMETHOD="POST"ACTION="jsp/do_upload.jsp"<inputtype="hidden"name="TEST"<tablewidth="75%"border="1"<td><divalign="center">1<inputtype="FILE"name="FILE1"<td><divalign="center">2<inputtype="FILE"name="FILE2"<td><divalign="center">3<inputtype="FILE"name="FILE3"<td><divalign="center">4<inputtype="FILE"name="FILE4"<td><div<inputtype="submit"name="Submit"value="上传2、上传处理页面本页面执行文件上传操作。页面源码中详细介绍了上传方法的用法,在此不赘述了页面源码如下<%-文件名作者:软件制作中心 --<%@pagecontentType="text/html;charset=gb2312"language="java"import="java.util.*,com.jspsmart.upload.*"errorPage=""%><title>文件上传处理页面</title><metahttp-equiv="Content-Type"content="text/html;//新建一个SmartUpload对SmartUploadsu=new//上传初//设定上传限//1.限制每个上传文件的最大长度////2.限制总上传数据的长度////3.设定允许上传的文件(通过扩展名限制),仅允许doc,txt文件////4.设定上传的文件(通过扩展名限制),上传带有exe,bat,jsp,htm,html扩展名的文件和没有扩展名的文件。////上传文//将上传文件全部保存到指 必须存intcount=su.save("/upload");//利用Request对象获取参数//逐一提取上传文件信息,同时可保存文件for(int{com.jspsmart.upload.Filefile=//若文件不存在则继if(file.isMissing())//显示当前文件out.println("<TABLEout.println("<TR><TD>表单项名+file.getFieldName()+"</TD></TR>");out.println("<TR><TD>文件长度(Size)</TD><TDfile.getSize()+"</TD></TR>");out.println("<TR><TD>文件名+file.getFileName()+"</TD></TR>");+file.getFileExt()+out.println("<TR><TD>文件全名+file.getFilePathName()+"</TD></TR>");//将文件//file.saveAs("/upload/"+//另存到以WEB应用程序的 为文件 //file.saveAs("/upload/"+myFile.getFileName(),//另存到操作系统的 为文件 //file.saveAs("c:\\temp\\"+}四、文件1、页面页面源码如下<!-文件名作者:软件制作中心 --<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01<title><metahttp-equiv="Content-Type"content="text/html;<ahref="jsp/do_download.jsp">点击2、处理页面do_downoadspd_donoadsp展示了如何利用spmarUpoad组件来文件,从下面的源码中就可以看到,何其简单。源码如<%@pagecontentType="text/html;charset=gb2312"import="com.jspsmart.upload.*"%><%//新建一个SmartUpload对SmartUploadsu=new//初始//设定contentDisposition为null以浏览器自动打开文件//保证点击后是文件。若不设定,则的文件扩展名//doc时,浏览器将自动用word打开它。扩展名为pdf时//浏览器将用acrobat打开//文su.downloadFile("/upload/如何浏览取我的第一桶金注意,执行的页面在Java范围外(即<%.%>之外不要包含HTML代码空格回车或换行等字符有的话将不能正确。不信的话,可以在上述源码中%><%之间加入一个换行符,再一下,保证出错。因为它影响了返回给浏览器的数据流,导致解析出错。3、如何中文文spmarUpoad虽然能文件,但对中文支持不足。若的文件名中有汉字,则浏览器在提示另存的文件名时,显示的是一堆乱码很扫人兴上面的例子就是这样(这个问题也是众多组件所存在的问题很少有人解决浏览不)为了给spmarUpoad组件增加中文文件的支持我对该组件进行了研究,发现对返回给浏览器的另存文件名进行U-8spmarUpoad组件的marUpoad类做了升级处理,增加了oUf8Srng这个方法,改动部分源码如下:publicvoiddownloadFile(Strings,Strings1,Strings2,intthrowsServletException,IOException,{if(s==thrownewIllegalArgumentException("File'"+s+"'notfound(1040).");thrownewIllegalArgumentException("File'"+s+"'notfound(1040).");if(!isVirtual(s)&&m_denyPhysicalPath)thrownewSecurityException("Physicalpathisdenied(1035).");s=m_application.getRealPath(s);java.io.Filefile=newjava.io.File(s);FileInputStreamfileinputstream=newFileInputStream(file);longl=file.length();booleanflag=false;intk=0;byteabyte0[]=newbyte[i];if(s1==null)if(s1.length()==0)m_contentDisposition=m_contentDisposition!=null?m_contentDisposition:"atta if(s2==null)m_contentDisposition+"filename="+if(s2.length()==0)m_contentDisposition+"filename="+toUtf8String(s2));while((long)k<l){intj=

温馨提示

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

评论

0/150

提交评论