㈠ File类

㈠ File类

SmartUpload相关类的讲明,smartupload相关类

㈠ File类

  这一个类包装了一个上传文件的有所音讯。通过它,可以获取上传文件的文书名、文件大小、扩充名、文件数量等音信。

  File类紧要提供以下办法:

1、saveAs成效:将文件换名另存。

原型:

public void saveAs(java.lang.String destFilePathName)

public void saveAs(java.lang.String destFilePathName, int optionSaveAs)

内部,destFilePathName是另存的文本名,optionSaveAs是另存的选项,该选用有多个值,分别是SAVEAS_PHYSICAL,SAVEAS_VIRTUAL,SAVEAS_AUTO。SAVEAS_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.zip。saveAs(“/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 int getSize()

8、getBinaryData

意义:取文件数量中指定位移处的一个字节,用于检测文件等处理。

原型:public byte getBinaryData(int
index)。其中,index表示位移,其值在0到getSize()-1以内。

㈡ Files类

  那些类表示所有上传文件的联谊,通过它可以得到上传文件的数额、大小等音讯。有以下格局:

1、getCount

功能:取得上传文件的数量。

原型:public int getCount()

2、getFile

作用:取得指定位移处的文件对象File(那是com.jspsmart.upload.File,不是java.io.File,注意区分)。

原型:public File getFile(int
index)。其中,index为指定位移,其值在0到getCount()-1里面。

3、getSize

功用:取得上传文件的总长度,可用来限制两遍性上传的数据量大小。

原型:public long getSize()

jsp上传控件_jspsmartupload,SmartUpload相关类的辨证。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方法,第二步就要推行这么些办法。

原型:public void upload()

2、save

作用:将全部上传文件保留到指定目录下,并回到保存的文本个数。

原型:public int save(String destPathName)

和public int save(String destPathName,int option)

里面,destPathName为文件保留目录,option为保留选项,它有多个值,分别是SAVE_PHYSICAL,SAVE_VIRTUAL和SAVE_AUTO。(同File类的saveAs方法的选项之值类似)SAVE_PHYSICAL提醒组件将文件保留到以操作系统根目录为文件根目录的目录下,SAVE_VIRTUAL提醒组件将文件保留到以Web应用程序根目录为文件根目录的目录下,而SAVE_AUTO则代表由组件自动选取。

注:save(destPathName)作用一样save(destPathName,SAVE_AUTO)。

3、getSize

效益:取上传文件数量的总长度

原型:public int getSize()

4、getFiles

作用:取全方位上传文件,以Files对象格局再次来到,可以采取Files类的操作方法来赢得上传文件的数额等音讯。

原型:public Files getFiles()

5、getRequest

效果:取得Request对象,以便由此对象得到上传表单参数之值。

原型:public Request getRequest()

6、setAllowedFilesList

功能:设定允许上传带有指定扩张名的文本,当上传进度中有文件名不容许时,组件将抛出万分。

原型:public void setAllowedFilesList(String allowedFilesList)

其间,allowedFilesList为允许上传的文书增添名列表,各种伸张名以内以逗号分隔。若是想同意上传那几个并未扩充名的公文,可以用四个逗号表示。例如:setAllowedFilesList(“doc,txt,,”)将同意上传带doc和txt扩张名的文书以及从未扩充名的文本。

7、setDeniedFilesList

作用:用于限制上传那么些饱含指定扩大名的文本。若有文件扩充名被界定,则上传时组件将抛出相当。

原型:public void setDeniedFilesList(String deniedFilesList)

里面,deniedFilesList为禁止上传的文书扩大名列表,各种扩张名以内以逗号分隔。即使想禁止上传那一个并未伸张名的公文,可以用七个逗号来代表。例如:setDeniedFilesList(“exe,bat,,”)将禁止上传带exe和bat扩大名的文书以及从未扩大名的文本。

8、setMaxFileSize

功能:设定每个文件允许上传的最大尺寸。

原型:public void setMaxFileSize(long maxFileSize)

中间,maxFileSize为为各类文件允许上传的最大尺寸,当文件超出此尺寸时,将不被上传。

9、setTotalMaxFileSize

效益:设定允许上传的文件的总长度,用于限制一回性上传的数据量大小。

原型:public void setTotalMaxFileSize(long totalMaxFileSize)

其间,totalMaxFileSize为允许上传的文件的总长度。

C.下载文件常用的形式

1、setContentDisposition

作用:将数据追加到MIME文件头的CONTENT-DISPOSITION域。jspSmartUpload组件会在回去下载的新闻时自动填写MIME文件头的CONTENT-DISPOSITION域,若是用户必要添加额外新闻,请用此办法。

原型:public void setContentDisposition(String contentDisposition)

里头,contentDisposition为要充裕的数额。要是contentDisposition为null,则组件将机关抬高”attachment;”,以标明将下载的文件作为附件,结果是IE浏览器将会唤起另存文件,而不是自行打开这一个文件(IE浏览器一般根据下载的公文伸张名决定履行怎么着操作,增添名为doc的将用word程序打开,伸张名为pdf的将用acrobat程序打开,等等)。

2、downloadFile

功能:下载文件。

原型:共有以下多个原型可用,第四个最常用,后五个用于特殊情状下的文本下载(如更改内容类型,更改另存的公文名)。

① public void downloadFile(String sourceFilePathName)

其间,sourceFilePathName为要下载的文本名(带目录的公文全名)

② public void downloadFile(String sourceFilePathName,String contentType)

内部,sourceFilePathName为要下载的文本名(带目录的文本全名),contentType为情节类型(MIME格式的文件类型音信,可被浏览器识别)。

③ public void downloadFile(String sourceFilePathName,String
contentType,String destFileName)

里面,sourceFilePathName为要下载的公文名(带目录的文件全名),contentType为情节类型(MIME格式的文件类型音信,可被浏览器识别),destFileName为下载后默许的另存文件名。


File类
那些类包装了一个上传文件的所有新闻。通过它,可以拿走上传文件的公文名、文件大小…

一、安装篇 

  这一个类包装了一个上传文件的持有新闻。通过它,可以赢得上传文件的文件名、文件大小、伸张名、文件数量等音讯。

  这些类包装了一个上传文件的保有新闻。通过它,可以获得上传文件的文本名、文件大小、扩大名、文件数量等消息。

  jspSmartUpload是由www.jspsmart.com网站开发的一个可免费应用的专职能的公文上传下载组件,适于嵌入执行上传下载操作的JSP文件中。该器件有以下多少个特色: 

  File类紧要提供以下办法:

  File类紧要提供以下格局:

1、使用简便。在JSP文件中单独书写三五行java代码就足以搞定文件的上传或下载,方便。 

1、saveAs功用:将文件换名另存。

1、saveAs功用:将文件换名另存。

2、能全程控制上传。利用jspSmartUpload组件提供的目标及其操作方法,可以获取全套上传文件的新闻(包蕴文件名,大小,类型,增添名,文件数量等),方便存取。 

原型:

原型:

3、能对上传的公文在大大小小、类型等地点做出限制。如此可以滤掉不符合必要的文件。 

public void saveAs(java.lang.String destFilePathName)

public void saveAs(java.lang.String destFilePathName)

4、下载灵活。仅写两行代码,就能把Web服务器变成文件服务器。不管文件在Web服务器的目录下或在其他任何目录下,都足以运用jspSmartUpload举行下载。 

5、能将文件上盛传数据库中,也能将数据库中的数据下载下来。那种功用针对的是MySQL数据库,因为不负有通用性,所以本文不准备举例介绍那种用法。 

public void saveAs(java.lang.String destFilePathName, int optionSaveAs)

public void saveAs(java.lang.String destFilePathName, int optionSaveAs)

  jspSmartUpload组件可以从www.jspsmart.com网站上随机下载,压缩包的名字是jspSmartUpload.zip。下载后,用WinZip或WinRAR将其解压到汤姆cat的webapps目录下(本文以汤姆cat服务器为例举行介绍)。解压后,将webapps/jspsmartupload目录下的子目录Web-inf名字改为全大写的WEB-INF,那样一改jspSmartUpload类才能利用。因为汤姆cat对文本名大小写敏感,它须要Web应用程序相关的类所在目录为WEB-INF,且务必是大写。接器重新启航汤姆cat,那样就可以在JSP文件中行使jspSmartUpload组件了。 

其间,destFilePathName是另存的文书名,optionSaveAs是另存的选项,该选用有几个值,分别是SAVEAS_PHYSICAL,SAVEAS_VIRTUAL,SAVEAS_AUTO。SAVEAS_PHYSICAL声明以操作系统的根目录为文件根目录另存文件,SAVEAS_VIRTUAL注明以Web应用程序的根目录为文件根目录另存文件,SAVEAS_AUTO则意味着让组件决定,当Web应用程序的根目录存在另存文件的目录时,它会挑选SAVEAS_VIRTUAL,否则会接纳SAVEAS_PHYSICAL。

里面,destFilePathName是另存的文件名,optionSaveAs是另存的选项,该选用有三个值,分别是SAVEAS_PHYSICAL,SAVEAS_VIRTUAL,SAVEAS_AUTO。SAVEAS_PHYSICAL申明以操作系统的根目录为文件根目录另存文件,SAVEAS_VIRTUAL评释以Web应用程序的根目录为文件根目录另存文件,SAVEAS_AUTO则意味让组件决定,当Web应用程序的根目录存在另存文件的目录时,它会采用SAVEAS_VIRTUAL,否则会挑选SAVEAS_PHYSICAL。

  注意,按上述办法安装后,唯有webapps/jspsmartupload目录下的顺序可以利用jspSmartUpload组件,如若想让汤姆cat服务器的装有Web应用程序都能用它,必须做如下工作: 

例如,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.zip。saveAs(“/upload/sample.zip”,SAVEAS_AUTO)执行时若Web应用程序根目录下存在upload目录,则其意义同saveAs(“/upload/sample.zip”,SAVEAS_VIRTUAL),否则同saveAs(“/upload/sample.zip”,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.zip。saveAs(“/upload/sample.zip”,SAVEAS_AUTO)执行时若Web应用程序根目录下存在upload目录,则其作用同saveAs(“/upload/sample.zip”,SAVEAS_VIRTUAL),否则同saveAs(“/upload/sample.zip”,SAVEAS_PHYSICAL)。

1.进来命令行状态,将引得切换来汤姆cat的webapps/jspsmartupload/WEB-INF目录下。 

提出:对于Web程序的费用来说,最好使用SAVEAS_VIRTUAL,以便移植。

提议:对于Web程序的付出来说,最好使用SAVEAS_VIRTUAL,以便移植。

2.运行JAR打包命令:jar cvf jspSmartUpload.jar com 

2、isMissing

2、isMissing

(也足以打开资源管理器,切换来当前目录,用WinZip将com目录下的享有文件减弱成jspSmartUpload.zip,然后将jspSmartUpload.zip换名为jspSmartUpload.jar文件即可。) 

功用:这些法子用于判断用户是还是不是选拔了文本,也即对应的表单项是还是不是有值。拔取了文本时,它回到false。未选文件时,它回到true。

作用:这一个格局用于判断用户是还是不是选取了文件,也即对应的表单项是或不是有值。接纳了文本时,它回到false。未选文件时,它回到true。

3.将jspSmartUpload.jar拷贝到Tomcat的shared/lib目录下。 

原型:public boolean isMissing()

原型:public boolean isMissing()

二、相关类表明篇 

3、getFieldName

3、getFieldName

㈠ File类 

效益:取HTML表单中对应于此上传文件的表单项的名字。

功效:取HTML表单中对应于此上传文件的表单项的名字。

  那么些类包装了一个上传文件的富有音信。通过它,可以收获上传文件的文本名、文件大小、扩张名、文件数量等音信。 

原型:public String getFieldName()

原型:public String getFieldName()

  File类紧要提供以下措施: 

4、getFileName

4、getFileName

1、saveAs功用:将文件换名另存。 

职能:取文件名(不含目录音讯)

功能:取文件名(不含目录消息)

原型: 

原型:public String getFileName()

原型:public String getFileName()

public void saveAs(java.lang.String destFilePathName) 

5、getFilePathName

5、getFilePathName

或 

效益:取文件全名(带目录)

成效:取文件全名(带目录)

public void saveAs(java.lang.String destFilePathName, int
optionSaveAs) 

原型:public String getFilePathName

原型:public String getFilePathName

中间,destFilePathName是另存的公文名,optionSaveAs是另存的选项,该选用有八个值,分别是SAVEAS_PHYSICAL,SAVEAS_VIRTUAL,SAVEAS_AUTO。SAVEAS_PHYSICAL表明以操作系统的根目录为文件根目录另存文件,SAVEAS_VIRTUAL申明以Web应用程序的根目录为文件根目录另存文件,SAVEAS_AUTO则代表让组件决定,当Web应用程序的根目录存在另存文件的目录时,它会选用SAVEAS_VIRTUAL,否则会挑选SAVEAS_PHYSICAL。 

6、getFileExt

6、getFileExt

例如,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.zip。saveAs(“/upload/sample.zip”,SAVEAS_AUTO)执行时若Web应用程序根目录下存在upload目录,则其意义同saveAs(“/upload/sample.zip”,SAVEAS_VIRTUAL),否则同saveAs(“/upload/sample.zip”,SAVEAS_PHYSICAL)。 

意义:取文件增添名(后缀)

功效:取文件伸张名(后缀)

提出:对于Web程序的支付来说,最好使用SAVEAS_VIRTUAL,以便移植。 

原型:public String getFileExt()

原型:public String getFileExt()

2、isMissing 

7、getSize

7、getSize

意义:这些主意用于判断用户是还是不是接纳了文本,也即对应的表单项是或不是有值。接纳了文件时,它回到false。未选文件时,它回到true。 

功用:取文件长度(以字节计)

功效:取文件长度(以字节计)

原型:public boolean isMissing() 

原型:public int getSize()

原型:public int getSize()

3、getFieldName 

8、getBinaryData

8、getBinaryData

作用:取HTML表单中对应于此上传文件的表单项的名字。 

职能:取文件数量中指定位移处的一个字节,用于检测文件等处理。

成效:取文件数量中指定位移处的一个字节,用于检测文件等拍卖。

原型:public String getFieldName() 

原型:public byte getBinaryData(int
index)。其中,index表示位移,其值在0到getSize()-1之间。

原型:public byte getBinaryData(int
index)。其中,index表示位移,其值在0到getSize()-1里面。

4、getFileName 

㈡ Files类

㈡ Files类

效用:取文件名(不含目录信息) 

  那些类表示拥有上传文件的聚众,通过它可以博得上传文件的数目、大小等音信。有以下办法:

  那几个类表示拥有上传文件的碰面,通过它能够得到上传文件的数据、大小等音信。有以下措施:

原型:public String getFileName() 

1、getCount

1、getCount

5、getFilePathName 

成效:取得上传文件的数码。

成效:取得上传文件的多少。

功用:取文件全名(带目录) 

原型:public int getCount()

原型:public int getCount()

原型:public String getFilePathName 

2、getFile

2、getFile

6、getFileExt 

效果:取得指定位移处的公文对象File(这是com.jspsmart.upload.File,不是java.io.File,注意区分)。

功效:取得指定位移处的公文对象File(那是com.jspsmart.upload.File,不是java.io.File,注意区分)。

作用:取文件扩张名(后缀) 

原型:public File getFile(int
index)。其中,index为指定位移,其值在0到getCount()-1以内。

原型:public File getFile(int
index)。其中,index为指定位移,其值在0到getCount()-1之间。

原型:public String getFileExt() 

3、getSize

3、getSize

7、getSize 

作用:取得上传文件的总长度,可用以限制一遍性上传的数据量大小。

效益:取得上传文件的总长度,可用以限制两次性上传的数据量大小。

效能:取文件长度(以字节计) 

原型:public long getSize()

原型:public long getSize()

原型:public int getSize() 

4、getCollection

4、getCollection

8、getBinaryData 

作用:将有所上传文件对象以Collection的款型再次来到,以便其他应用程序引用,浏览上传文件音信。

效益:将拥有上传文件对象以Collection的款型再次回到,以便其它应用程序引用,浏览上传文件音信。

成效:取文件数量中指定位移处的一个字节,用于检测文件等拍卖。 

原型:public Collection getCollection()

原型:public Collection getCollection()

原型:public byte getBinaryData(int
index)。其中,index表示位移,其值在0到getSize()-1里头。 

5、getEnumeration

5、getEnumeration

㈡ Files类 

成效:将具有上传文件对象以Enumeration(枚举)的方式重返,以便此外应用程序浏览上传文件音信。

功效:将持有上传文件对象以Enumeration(枚举)的形式再次回到,以便其余应用程序浏览上传文件音信。

  那么些类表示所有上传文件的集合,通过它可以取得上传文件的数量、大小等音讯。有以下措施: 

原型:public Enumeration getEnumeration()

原型:public Enumeration getEnumeration()

1、getCount 

㈢ Request类

㈢ Request类

功能:取得上传文件的数额。 

  这一个类的听从雷同JSP内置的对象request。只所以提供那几个类,是因为对此文本上传表单,通过request对象不可能取得表单项的值,必须通过jspSmartUpload组件提供的Request对象来获取。该类提供如下方法:

  这一个类的作用雷同JSP内置的对象request。只所以提供那几个类,是因为对于文本上传表单,通过request对象无法获取表单项的值,必须通过jspSmartUpload组件提供的Request对象来博取。该类提供如下方法:

原型:public int getCount() 

1、getParameter

1、getParameter

2、getFile 

职能:获取指定参数之值。当参数不存在时,再次来到值为null。

功效:获取指定参数之值。当参数不存在时,再次回到值为null。

功效:取得指定位移处的公文对象File(那是com.jspsmart.upload.File,不是java.io.File,注意区分)。 

原型:public String getParameter(String name)。其中,name为参数的名字。

原型:public String getParameter(String name)。其中,name为参数的名字。

原型:public File getFile(int
index)。其中,index为指定位移,其值在0到getCount()-1中间。 

2、getParameterValues

2、getParameterValues

3、getSize 

功能:当一个参数可以有多少个值时,用此办法来取其值。它回到的是一个字符串数组。当参数不存在时,重回值为null。

意义:当一个参数可以有多少个值时,用此措施来取其值。它回到的是一个字符串数组。当参数不存在时,重返值为null。

功能:取得上传文件的总长度,可用以限制五次性上传的数据量大小。 

原型:public String[] getParameterValues(String
name)。其中,name为参数的名字。

原型:public String[] getParameterValues(String
name)。其中,name为参数的名字。

原型:public long getSize() 

3、getParameterNames

3、getParameterNames

4、getCollection 

职能:取得Request对象中兼有参数的名字,用于遍历所有参数。它回到的是一个枚举型的对象。

效用:取得Request对象中享有参数的名字,用于遍历所有参数。它回到的是一个枚举型的靶子。

作用:将持有上传文件对象以Collection的款式重返,以便其余应用程序引用,浏览上传文件音信。 

原型:public Enumeration getParameterNames()

原型:public Enumeration getParameterNames()

原型:public Collection getCollection() 

㈣ SmartUpload类那几个类成就上传下载工作。

㈣ SmartUpload类这一个类成就上传下载工作。

5、getEnumeration 

A.上传与下载共用的点子:

A.上传与下载共用的法门:

效用:将有所上传文件对象以Enumeration(枚举)的样式重临,以便其余应用程序浏览上传文件消息。 

唯有一个:initialize。

唯有一个:initialize。

原型:public Enumeration getEnumeration() 

功能:执行上传下载的初步化工作,必须首先个执行。

职能:执行上传下载的伊始化工作,必须首先个实施。

㈢ Request类 

原型:有几个,紧要选取上边那个:

原型:有多少个,首要采纳上面这一个:

  这一个类的出力雷同JSP内置的对象request。只所以提供那么些类,是因为对此文本上传表单,通过request对象不能获得表单项的值,必须通过jspSmartUpload组件提供的Request对象来获得。该类提供如下方法: 

public final void initialize(javax.servlet.jsp.PageContext pageContext)

public final void initialize(javax.servlet.jsp.PageContext pageContext)

1、getParameter 

内部,pageContext为JSP页面内置对象(页面上下文)。

其中,pageContext为JSP页面内置对象(页面上下文)。

效果:获取指定参数之值。当参数不设有时,再次回到值为null。 

B.上传文件使用的形式:

B.上传文件使用的法子:

原型:public String getParameter(String
name)。其中,name为参数的名字。 

1、upload

1、upload

2、getParameterValues 

效果:上传文件数量。对于上传操作,第一步执行initialize方法,第二步就要进行那一个法子。

功能:上传文件数量。对于上传操作,第一步执行initialize方法,第二步就要实践这些措施。

效果:当一个参数可以有三个值时,用此办法来取其值。它回到的是一个字符串数组。当参数不存在时,重回值为null。 

原型:public void upload()

原型:public void upload()

原型:public String[] getParameterValues(String
name)。其中,name为参数的名字。 

2、save

2、save

3、getParameterNames 

职能:将所有上传文件保留到指定目录下,并回到保存的文书个数。

成效:将全方位上传文件保留到指定目录下,并回到保存的文书个数。

功能:取得Request对象中享有参数的名字,用于遍历所有参数。它回到的是一个枚举型的目的。 

原型:public int save(String destPathName)

原型:public int save(String destPathName)

原型:public Enumeration getParameterNames() 

和public int save(String destPathName,int option)

和public int save(String destPathName,int option)

㈣ SmartUpload类本条类成就上传下载工作。 

里头,destPathName为文件保留目录,option为保留选项,它有三个值,分别是SAVE_PHYSICAL,SAVE_VIRTUAL和SAVE_AUTO。(同File类的saveAs方法的选项之值类似)SAVE_PHYSICAL提示组件将文件保留到以操作系统根目录为文件根目录的目录下,SAVE_VIRTUAL提示组件将文件保留到以Web应用程序根目录为文件根目录的目录下,而SAVE_AUTO则表示由组件自动拔取。

内部,destPathName为文件保留目录,option为保留选项,它有多个值,分别是SAVE_PHYSICAL,SAVE_澳门金沙国际 ,VIRTUAL和SAVE_AUTO。(同File类的saveAs方法的选项之值类似)SAVE_PHYSICAL提醒组件将文件保留到以操作系统根目录为文件根目录的目录下,SAVE_VIRTUAL提示组件将文件保留到以Web应用程序根目录为文件根目录的目录下,而SAVE_AUTO则代表由组件自动选拔。

A.上传与下载共用的点子: 

注:save(destPathName)效率一样save(destPathName,SAVE_AUTO)。

注:save(destPathName)功能一样save(destPathName,SAVE_AUTO)。

唯有一个:initialize。 

3、getSize

3、getSize

意义:执行上传下载的开端化工作,必须首先个执行。 

成效:取上传文件数量的总长度

职能:取上传文件数量的总长度

原型:有八个,主要使用上边那个: 

原型:public int getSize()

原型:public int getSize()

public final void initialize(javax.servlet.jsp.PageContext
pageContext) 

4、getFiles

4、getFiles

内部,pageContext为JSP页面内置对象(页面上下文)。 

功效:取全方位上传文件,以Files对象格局再次来到,能够行使Files类的操作方法来赢得上传文件的数额等音讯。

作用:取全方位上传文件,以Files对象格局重返,可以采纳Files类的操作方法来获得上传文件的数码等音信。

B.上传文件使用的办法: 

原型:public Files getFiles()

原型:public Files getFiles()

1、upload 

5、getRequest

5、getRequest

功能:上传文件数量。对于上传操作,第一步执行initialize方法,第二步就要履行那几个办法。

效益:取得Request对象,以便因此对象得到上传表单参数之值。

功用:取得Request对象,以便由此对象得到上传表单参数之值。

原型:public void upload() 

原型:public Request getRequest()

原型:public Request getRequest()

2、save 

6、setAllowedFilesList

6、setAllowedFilesList

功用:将所有上传文件保留到指定目录下,并重返保存的文书个数。 

意义:设定允许上传带有指定扩大名的文件,当上传过程中有文件名不一样意时,组件将抛出更加。

效用:设定允许上传带有指定扩充名的文本,当上传进程中有文件名分歧意时,组件将抛出万分。

原型:public int save(String destPathName) 

原型:public void setAllowedFilesList(String allowedFilesList)

原型:public void setAllowedFilesList(String allowedFilesList)

和public int save(String destPathName,int option) 

内部,allowedFilesList为允许上传的文件伸张名列表,各类扩张名以内以逗号分隔。若是想同意上传这么些并未增添名的文本,可以用四个逗号表示。例如:setAllowedFilesList(“doc,txt,,”)将允许上传带doc和txt增添名的文书以及从未扩大名的文书。

其间,allowedFilesList为允许上传的公文扩张名列表,种种增添名之间以逗号分隔。假如想同意上传那几个尚未增添名的文书,可以用多少个逗号表示。例如:setAllowedFilesList(“doc,txt,,”)将同意上传带doc和txt增加名的文件以及没有增添名的文件。

内部,destPathName为文件保留目录,option为保留选项,它有三个值,分别是SAVE_PHYSICAL,SAVE_VIRTUAL和SAVE_AUTO。(同File类的saveAs方法的选项之值类似)SAVE_PHYSICAL提醒组件将文件保留到以操作系统根目录为文件根目录的目录下,SAVE_VIRTUAL提醒组件将文件保留到以Web应用程序根目录为文件根目录的目录下,而SAVE_AUTO则象征由组件自动选择。 

7、setDeniedFilesList

7、setDeniedFilesList

注:save(destPathName)作用一样save(destPathName,SAVE_AUTO)。 

功用:用于限制上传这些含有指定伸张名的文书。若有文件增加名被限定,则上传时组件将抛出卓殊。

成效:用于限制上传那多少个饱含指定扩大名的公文。若有文件扩充名被限制,则上传时组件将抛出相当。

3、getSize 

原型:public void setDeniedFilesList(String deniedFilesList)

原型:public void setDeniedFilesList(String deniedFilesList)

功用:取上传文件数量的路途度 

里面,deniedFilesList为禁止上传的公文扩张名列表,各类增加名之间以逗号分隔。假诺想禁止上传那多少个尚未扩充名的文书,可以用两个逗号来表示。例如:setDeniedFilesList(“exe,bat,,”)将禁止上传带exe和bat增加名的文件以及没有扩充名的文件。

中间,deniedFilesList为禁止上传的文书伸张名列表,种种扩张名之间以逗号分隔。要是想禁止上传那多少个从没伸张名的文件,可以用五个逗号来表示。例如:setDeniedFilesList(“exe,bat,,”)将禁止上传带exe和bat扩充名的文本以及没有增添名的公文。

原型:public int getSize() 

8、setMaxFileSize

8、setMaxFileSize

4、getFiles 

功效:设定每个文件允许上传的最大尺寸。

效益:设定每个文件允许上传的最大尺寸。

功用:取全方位上传文件,以Files对象形式重回,能够行使Files类的操作方法来赢得上传文件的多少等音信。 

原型:public void setMaxFileSize(long maxFileSize)

原型:public void setMaxFileSize(long maxFileSize)

原型:public Files getFiles() 

其中,maxFileSize为为每个文件允许上传的最大尺寸,当文件超出此尺寸时,将不被上传。

里面,maxFileSize为为每个文件允许上传的最大尺寸,当文件超出此尺寸时,将不被上传。

5、getRequest 

9、setTotalMaxFileSize

9、setTotalMaxFileSize

功用:取得Request对象,以便由此对象获得上传表单参数之值。 

效益:设定允许上传的文书的总长度,用于限制一回性上传的数据量大小。

成效:设定允许上传的文件的总长度,用于限制一回性上传的数据量大小。

原型:public Request getRequest() 

原型:public void setTotalMaxFileSize(long totalMaxFileSize)

原型:public void setTotalMaxFileSize(long totalMaxFileSize)

6、setAllowedFilesList 

里面,total马克斯FileSize为允许上传的文件的总长度。

其中,total马克斯FileSize为允许上传的公文的总长度。

作用:设定允许上传带有指定增添名的公文,当上传进程中有文件名分歧意时,组件将抛出相当。 

C.下载文件常用的主意

C.下载文件常用的章程

原型:public void setAllowedFilesList(String allowedFilesList) 

1、setContentDisposition

1、setContentDisposition

中间,allowedFilesList为允许上传的文本扩大名列表,各类增添名以内以逗号分隔。假设想同意上传那多少个没有扩张名的文件,可以用多个逗号表示。例如:setAllowedFilesList(“doc,txt,,”)将允许上传带doc和txt扩大名的文本以及没有增添名的公文。 

职能:将数据追加到MIME文件头的CONTENT-DISPOSITION域。jspSmartUpload组件会在回来下载的音信时自动填写MIME文件头的CONTENT-DISPOSITION域,即便用户须求添加额外音讯,请用此方式。

功能:将数据追加到MIME文件头的CONTENT-DISPOSITION域。jspSmartUpload组件会在重回下载的新闻时自动填写MIME文件头的CONTENT-DISPOSITION域,假如用户需求添加额外新闻,请用此措施。

7、setDeniedFilesList 

原型:public void setContentDisposition(String contentDisposition)

原型:public void setContentDisposition(String contentDisposition)

功效:用于限制上传那多少个饱含指定扩充名的文本。若有文件伸张名被限定,则上传时组件将抛出相当。 

个中,contentDisposition为要丰硕的数据。即便contentDisposition为null,则组件将机关抬高”attachment;”,以标明将下载的文件作为附件,结果是IE浏览器将会唤起另存文件,而不是电动打开这几个文件(IE浏览器一般根据下载的公文增添名决定履行如何操作,扩充名为doc的将用word程序打开,扩大名为pdf的将用acrobat程序打开,等等)。

其中,contentDisposition为要丰盛的数量。倘若contentDisposition为null,则组件将机关抬高”attachment;”,以声明将下载的公文作为附件,结果是IE浏览器将会唤醒另存文件,而不是机动打开这么些文件(IE浏览器一般依据下载的文本增加名决定履行什么样操作,扩大名为doc的将用word程序打开,增加名为pdf的将用acrobat程序打开,等等)。

原型:public void setDeniedFilesList(String deniedFilesList) 

2、downloadFile

2、downloadFile

个中,deniedFilesList为禁止上传的文本增加名列表,各样扩张名以内以逗号分隔。若是想禁止上传那个没有扩大名的文件,可以用三个逗号来代表。例如:setDeniedFilesList(“exe,bat,,”)将禁止上传带exe和bat增添名的公文以及从未扩充名的公文。 

成效:下载文件。

职能:下载文件。

8、setMaxFileSize 

原型:共有以下多少个原型可用,第三个最常用,后三个用于特殊处境下的文书下载(如更改内容类型,更改另存的文本名)。

原型:共有以下八个原型可用,第三个最常用,后八个用于特殊景况下的公文下载(如更改内容类型,更改另存的文件名)。

效益:设定每个文件允许上传的最大尺寸。 

① public void downloadFile(String sourceFilePathName)

① public void downloadFile(String sourceFilePathName)

原型:public void setMaxFileSize(long maxFileSize) 

内部,sourceFilePathName为要下载的文书名(带目录的文本全名)

中间,sourceFilePathName为要下载的文件名(带目录的文书全名)

里面,maxFileSize为为各样文件允许上传的最大尺寸,当文件超出此尺寸时,将不被上传。 

② public void downloadFile(String sourceFilePathName,String contentType)

② public void downloadFile(String sourceFilePathName,String contentType)

9、setTotalMaxFileSize 

其间,sourceFilePathName为要下载的文件名(带目录的文书全名),contentType为情节类型(MIME格式的文件类型音信,可被浏览器识别)。

其中,sourceFilePathName为要下载的文本名(带目录的文本全名),contentType为情节类型(MIME格式的文件类型新闻,可被浏览器识别)。

作用:设定允许上传的文本的总长度,用于限制三回性上传的数据量大小。 

③ public void downloadFile(String sourceFilePathName,String
contentType,String destFileName)

③ public void downloadFile(String sourceFilePathName,String
contentType,String destFileName)

原型:public void setTotalMaxFileSize(long totalMaxFileSize) 

其间,sourceFilePathName为要下载的公文名(带目录的公文全名),contentType为内容类型(MIME格式的文件类型音信,可被浏览器识别),destFileName为下载后默许的另存文件名。

其间,sourceFilePathName为要下载的文书名(带目录的文本全名),contentType为内容类型(MIME格式的文件类型音信,可被浏览器识别),destFileName为下载后默许的另存文件名。

其中,total马克斯FileSize为允许上传的公文的总长度。 

C.下载文件常用的章程 

1、setContentDisposition 

成效:将数据追加到MIME文件头的CONTENT-DISPOSITION域。jspSmartUpload组件会在回来下载的新闻时自动填写MIME文件头的CONTENT-DISPOSITION域,如若用户需求添加额外音信,请用此方式。 

原型:public void setContentDisposition(String contentDisposition) 

其中,contentDisposition为要加上的数量。如果contentDisposition为null,则组件将活动抬高”attachment;”,以标明将下载的文本作为附件,结果是IE浏览器将会提示另存文件,而不是半自动打开那个文件(IE浏览器一般依据下载的文书伸张名决定执行如何操作,伸张名为doc的将用Word次第打开,扩充名为pdf的将用acrobat程序打开,等等)。 

2、downloadFile 

功用:下载文件。 

原型:共有以下七个原型可用,第三个最常用,后四个用于特殊处境下的文书下载(如更改内容类型,更改另存的文本名)。 

① public void downloadFile(String sourceFilePathName) 

其中,sourceFilePathName为要下载的文书名(带目录的文本全名) 

② public void downloadFile(String sourceFilePathName,String
contentType) 

里面,sourceFilePathName为要下载的文书名(带目录的文本全名),contentType为内容类型(MIME格式的文件类型新闻,可被浏览器识别)。 

③ public void downloadFile(String sourceFilePathName,String
contentType,String destFileName) 

其间,sourceFilePathName为要下载的公文名(带目录的公文全名),contentType为内容类型(MIME格式的文件类型音信,可被浏览器识别),destFileName为下载后默许的另存文件名。 

三、文件上传篇 

㈠ 表单需求 

对于上传文件的FORM表单,有多个需要: 

1、METHOD应用POST,即METHOD=”POST”。 

2、增加质量:ENCTYPE=”multipart/form-data” 

上面是一个用来上传文件的FORM表单的例证: 

<ccid_nobr>

<ccid_code><FORM METHOD="POST" ENCTYPE="multipart/form-data" 
ACTION="/jspSmartUpload/upload.jsp">
<INPUT TYPE="FILE" NAME="MYFILE">
<INPUT TYPE="SUBMIT">
</FORM>

㈡ 上传的例子 

1、上传页面upload.html 

本页面提供表单,让用户接纳要上传的文书,点击”上传”按钮执行上传操作。 

页面源码如下: 

<ccid_nobr>

<ccid_code><!--
    文件名:upload.html
    作  者:纵横软件制作中心雨亦奇(zhsoft88@sohu.com)
-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>文件上传</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<body>
<p>&nbsp;</p>
<p align="center">上传文件选择</p>
<FORM METHOD="POST" ACTION="jsp/do_upload.jsp"
ENCTYPE="multipart/form-data">
<input type="hidden" name="TEST" value="good">
  <table width="75%" border="1" align="center">
    <tr> 
      <td><div align="center">1、 
          <input type="FILE" name="FILE1" size="30">
        </div></td>
    </tr>
    <tr> 
      <td><div align="center">2、 
          <input type="FILE" name="FILE2" size="30">
        </div></td>
    </tr>
    <tr> 
      <td><div align="center">3、 
          <input type="FILE" name="FILE3" size="30">
        </div></td>
    </tr>
    <tr> 
      <td><div align="center">4、 
          <input type="FILE" name="FILE4" size="30">
        </div></td>
    </tr>
    <tr> 
      <td><div align="center">
          <input type="submit" name="Submit" value="上传它!">
        </div></td>
    </tr>
  </table>
</FORM>
</body>
</html>

2、上传处理页面do_upload.jsp 

本页面执行文书上传操作。页面源码中详尽介绍了上传方法的用法,在此不赘述了。 

页面源码如下: 

<ccid_nobr>

<ccid_code><%--
    文件名:do_upload.jsp
    作  者:纵横软件制作中心雨亦奇(zhsoft88@sohu.com)
--%>
<%@ page contentType="text/html; charset=gb2312" language="java" 
import="java.util.*,com.jspsmart.upload.*" errorPage="" %>
<html>
<head>
<title>文件上传处理页面</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<body>
<%
    // 新建一个SmartUpload对象
    SmartUpload su = new SmartUpload();
    // 上传初始化
    su.initialize(pageContext);
    // 设定上传限制
    // 1.限制每个上传文件的最大长度。
    // su.setMaxFileSize(10000);
    // 2.限制总上传数据的长度。
    // su.setTotalMaxFileSize(20000);
    // 3.设定允许上传的文件(通过扩展名限制),仅允许doc,txt文件。
    // su.setAllowedFilesList("doc,txt");
    // 4.设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat,
    jsp,htm,html扩展名的文件和没有扩展名的文件。
    // su.setDeniedFilesList("exe,bat,jsp,htm,html,,");
    // 上传文件
    su.upload();
    // 将上传文件全部保存到指定目录
    int count = su.save("/upload");
    out.PRintln(count+"个文件上传成功!<br>");

    // 利用Request对象获取参数之值
    out.println("TEST="+su.getRequest().getParameter("TEST")
    +"<BR><BR>");

    // 逐一提取上传文件信息,同时可保存文件。
    for (int i=0;i<su.getFiles().getCount();i++)
    {
        com.jspsmart.upload.File file = su.getFiles().getFile(i);

        // 若文件不存在则继续
        if (file.isMissing()) continue;

        // 显示当前文件信息
        out.println("<TABLE BORDER=1>");
        out.println("<TR><TD>表单项名(FieldName)</TD><TD>"
        + file.getFieldName() + "</TD></TR>");
        out.println("<TR><TD>文件长度(Size)</TD><TD>" + 
        file.getSize() + "</TD></TR>");
        out.println("<TR><TD>文件名(FileName)</TD><TD>" 
        + file.getFileName() + "</TD></TR>");
        out.println("<TR><TD>文件扩展名(FileExt)</TD><TD>" 
        + file.getFileExt() + "</TD></TR>");
        out.println("<TR><TD>文件全名(FilePathName)</TD><TD>"
        + file.getFilePathName() + "</TD></TR>");
        out.println("</TABLE><BR>");

        // 将文件另存
        // file.saveAs("/upload/" + myFile.getFileName());
        // 另存到以WEB应用程序的根目录为文件根目录的目录下
        // file.saveAs("/upload/" + myFile.getFileName(), 
        su.SAVE_VIRTUAL);
        // 另存到操作系统的根目录为文件根目录的目录下
        // file.saveAs("c:\\temp\\" + myFile.getFileName(), 
        su.SAVE_PHYSICAL);

    }
%>
</body>
</html>

四、文件下载篇 

1、下载链接页面download.html 

页面源码如下: 

<ccid_nobr>

<ccid_code><!--
        文件名:download.html
    作  者:纵横软件制作中心雨亦奇(zhsoft88@sohu.com)
-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>下载</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
<a href="jsp/do_download.jsp">点击下载</a>
</body>
</html>

2、下载处理页面do_download.jsp do_download.jsp呈现了什么行使jspSmartUpload组件来下载文件,从上边的源码中就足以看来,下载何其简单。 

源码如下: 

<ccid_nobr>

<ccid_code><%@ page contentType="text/html;charset=gb2312" 
import="com.jspsmart.upload.*" %><%
        // 新建一个SmartUpload对象
    SmartUpload su = new SmartUpload();
        // 初始化
    su.initialize(pageContext);
        // 设定contentDisposition为null以禁止浏览器自动打开文件,
        //保证点击链接后是下载文件。若不设定,则下载的文件扩展名为
        //doc时,浏览器将自动用word打开它。扩展名为pdf时,
        //浏览器将用acrobat打开。
    su.setContentDisposition(null);
        // 下载文件
    su.downloadFile("/upload/如何赚取我的第一桶金.doc");
%>

<ccid_code>注意,执行下载的页面,在Java脚本范围外(即<% …
%>之外),不要包罗HTML代码、空格、回车或换行等字符,有的话将无法科学下载。不信的话,可以在上述源码中%><%以内进入一个换行符,再下载一下,保险出错。因为它影响了回到给浏览器的数据流,导致解析出错。 

3、怎么样下载粤语文件 

jspSmartUpload就算能下载文件,但对汉语援救不足。若下载的文件名中有汉字,则浏览器在提醒另存的文本名时,突显的是一堆乱码,很扫人兴。上边的例子就是那般。(那几个标题也是过多下载组件所存在的题材,很少有人解决,搜索不到有关资料,可叹!) 

为了给jspSmartUpload组件增加下载粤语文件的支撑,我对该器件举办了探究,发现对回到给浏览器的另存文件名展开UTF-8编码后,浏览器便能正确展现普通话名字了。那是一个令人载歌载舞的发现。于是我对jspSmartUpload组件的SmartUpload类做了升迁处理,增加了toUtf8String这几个法子,改动部分源码如下: 

<ccid_nobr>

<ccid_code>public void downloadFile(String s, String s1, String s2, int i)
    throws ServletException, IOException, SmartUploadException
    {
    if(s == null)
        throw new IllegalArgumentException("File '" + s +
        "' not found (1040).");
    if(s.equals(""))
        throw new IllegalArgumentException("File '" + s +
        "' not found (1040).");
    if(!isVirtual(s) && m_denyPhysicalPath)
        throw new SecurityException("Physical path is
        denied (1035).");
    if(isVirtual(s))
        s = m_application.getRealPath(s);
    java.io.File file = new java.io.File(s);
    FileInputStream fileinputstream = new FileInputStream(file);
    long l = file.length();
    boolean flag = false;
    int k = 0;
    byte abyte0[] = new byte[i];
    if(s1 == null)
        m_response.setContentType("application/x-msdownload");
    else
    if(s1.length() == 0)
        m_response.setContentType("application/x-msdownload");
    else
        m_response.setContentType(s1);
    m_response.setContentLength((int)l);
    m_contentDisposition = m_contentDisposition != null ?
    m_contentDisposition : "attachment;";
    if(s2 == null)
        m_response.setHeader("Content-Disposition", 
        m_contentDisposition + " filename=" + 
        toUtf8String(getFileName(s)));
    else
    if(s2.length() == 0)
        m_response.setHeader("Content-Disposition", 
        m_contentDisposition);
    else
        m_response.setHeader("Content-Disposition", 
        m_contentDisposition + " filename=" + toUtf8String(s2));
    while((long)k < l)
    {
        int j = fileinputstream.read(abyte0, 0, i);
        k += j;
        m_response.getOutputStream().write(abyte0, 0, j);
    }
    fileinputstream.close();
    }

    /**
     * 将文件名中的汉字转为UTF8编码的串,以便下载时能正确显示另存的文件名.
     * 纵横软件制作中心雨亦奇2003.08.01
     * @param s 原文件名
     * @return 重新编码后的文件名
     */
    public static String toUtf8String(String s) {
    StringBuffer sb = new StringBuffer();
    for (int i=0;i<s.length();i++) {
        char c = s.charAt(i);
        if (c >= 0 && c <= 255) {
        sb.append(c);
        } else {
        byte[] b;
        try {
            b = Character.toString(c).getBytes("utf-8");
        } catch (Exception ex) {
            System.out.println(ex);
            b = new byte[0];
        }
        for (int j = 0; j < b.length; j++) {
            int k = b[j];
            if (k < 0) k += 256;
            sb.append("%" + Integer.toHexString(k).
            toUpperCase());
        }
        }
    }
    return sb.toString();
    }

专注源码中粗体部分,原jspSmartUpload组件对回到的公文未作其余处理,现在做了编码的更换工作,将文件名转移为UTF-8方式的编码方式。UTF-8编码对英文未作其余处理,对中文则必要转移为%XX的花样。toUtf8String方法中,直接选取Java语言提供的编码转换方法得到汉字字符的UTF-8编码,之后将其转移为%XX的款型。 

将源码编译后打包成jspSmartUpload.jar,拷贝到汤姆cat的shared/lib目录下(可为所有WEB应用程序所共享),然后重启汤姆cat服务器就可以正常下载含有粤语名字的文书了。另,toUtf8String方法也可用于转移含有中文的一级链接,以担保链接的灵光,因为一些WEB服务器不协助汉语链接。 

总括:jspSmartUpload组件是使用JSP进行B/S程序开发进度中时常利用的上传下载组件,它应用简便,方便。现在自我又为其丰硕了下载汉语名字的文件的帮衬,真个是如虎生翼,必将获得越来越多开发者的讲究。 

相关文章