﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-创造希望-文章分类-JSP</title><link>http://www.blogjava.net/yuhuaan/category/24997.html</link><description>在实践中学习，在学习中实践！</description><language>zh-cn</language><lastBuildDate>Wed, 15 Aug 2007 23:26:14 GMT</lastBuildDate><pubDate>Wed, 15 Aug 2007 23:26:14 GMT</pubDate><ttl>60</ttl><item><title>jspSmartUpload上传下载全攻略</title><link>http://www.blogjava.net/yuhuaan/articles/137091.html</link><dc:creator>网豪</dc:creator><author>网豪</author><pubDate>Wed, 15 Aug 2007 16:47:00 GMT</pubDate><guid>http://www.blogjava.net/yuhuaan/articles/137091.html</guid><wfw:comment>http://www.blogjava.net/yuhuaan/comments/137091.html</wfw:comment><comments>http://www.blogjava.net/yuhuaan/articles/137091.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yuhuaan/comments/commentRss/137091.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yuhuaan/services/trackbacks/137091.html</trackback:ping><description><![CDATA[<p>jspSmartUpload上传下载全攻略<br>&nbsp;<br>一、安装篇 </p>
<p>　　jspSmartUpload是由<a href="http://www.jspsmart.com/">www.jspsmart.com</a>网站开发的一个可免费使用的全功能的文件上传下载组件，适于嵌入执行上传下载操作的JSP文件中。该组件有以下几个特点： </p>
<p>1、使用简单。在JSP文件中仅仅书写三五行JAVA代码就可以搞定文件的上传或下载，方便。 </p>
<p>2、能全程控制上传。利用jspSmartUpload组件提供的对象及其操作方法，可以获得全部上传文件的信息（包括文件名，大小，类型，扩展名，文件数据等），方便存取。 </p>
<p>3、能对上传的文件在大小、类型等方面做出限制。如此可以滤掉不符合要求的文件。 </p>
<p>4、下载灵活。仅写两行代码，就能把Web服务器变成文件服务器。不管文件在Web服务器的目录下或在其它任何目录下，都可以利用jspSmartUpload进行下载。 </p>
<p>5、能将文件上传到数据库中，也能将数据库中的数据下载下来。这种功能针对的是MYSQL数据库，因为不具有通用性，所以本文不准备举例介绍这种用法。 </p>
<p>　　jspSmartUpload组件可以从<a href="http://www.jspsmart.com/">www.jspsmart.com</a>网站上自由下载，压缩包的名字是jspSmartUpload.zip。下载后，用WinZip或WinRAR将其解压到Tomcat的webapps目录下（本文以Tomcat服务器为例进行介绍）。解压后，将webapps/jspsmartupload目录下的子目录Web-inf名字改为全大写的WEB-INF，这样一改jspSmartUpload类才能使用。因为Tomcat对文件名大小写敏感，它要求Web应用程序相关的类所在目录为WEB-INF，且必须是大写。接着重新启动Tomcat，这样就可以在JSP文件中使用jspSmartUpload组件了。 </p>
<p>　　注意，按上述方法安装后，只有webapps/jspsmartupload目录下的程序可以使用jspSmartUpload <br>组件，如果想让Tomcat服务器的所有Web应用程序都能用它，必须做如下工作： </p>
<p>1．进入命令行状态，将目录切换到Tomcat的webapps/jspsmartupload/WEB-INF目录下。 </p>
<p>2．运行JAR打包命令：jar cvf jspSmartUpload.jar com </p>
<p>（也可以打开资源管理器，切换到当前目录，用WinZip将com目录下的所有文件压缩成jspSmartUpload.zip，然后将jspSmartUpload.zip换名为jspSmartUpload.jar文件即可。） </p>
<p>3．将jspSmartUpload.jar拷贝到Tomcat的shared/lib目录下。 </p>
<p>二、相关类说明篇 <br>File类 </p>
<p>　　这个类包装了一个上传文件的所有信息。通过它，可以得到上传文件的文件名、文件大小、扩展名、文件数据等信息。 </p>
<p>　　File类主要提供以下方法： </p>
<p>1、saveAs作用：将文件换名另存。 </p>
<p>原型： </p>
<p>public void saveAs(java.lang.String destFilePathName) </p>
<p>或 </p>
<p>public void saveAs(java.lang.String destFilePathName, int optionSaveAs) </p>
<p>其中，destFilePathName是另存的文件名，optionSaveAs是另存的选项，该选项有三个值，分别是SAVEAS_PHYSICAL,SAVEAS_VIRTUAL，SAVEAS_AUTO。SAVEAS_PHYSICAL表明以操作系统的根目录为文件根目录另存文件，SAVEAS_VIRTUAL表明以Web应用程序的根目录为文件根目录另存文件，SAVEAS_AUTO则表示让组件决定，当Web应用程序的根目录存在另存文件的目录时，它会选择SAVEAS_VIRTUAL，否则会选择 <br>SAVEAS_PHYSICAL。 </p>
<p>例如，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)。 </p>
<p>建议：对于Web程序的开发来说，最好使用SAVEAS_VIRTUAL，以便移植。 </p>
<p>2、 <br>isMissing </p>
<p>作用：这个方法用于判断用户是否选择了文件，也即对应的表单项是否有值。选择了文件时，它返回false。未选文件时，它返回true。 </p>
<p>原型：public boolean isMissing() </p>
<p>3、getFieldName </p>
<p>作用：取HTML表单中对应于此上传文件的表单项的名字。 </p>
<p>原型：public String getFieldName() </p>
<p>4、getFileName </p>
<p>作用：取文件名（不含目录信息） </p>
<p>原型：public String getFileName() </p>
<p>5、getFilePathName </p>
<p>作用：取文件全名（带目录） </p>
<p>原型：public String getFilePathName </p>
<p>6、getFileExt </p>
<p>作用：取文件扩展名（后缀） </p>
<p>原型：public String getFileExt() </p>
<p>7、getSize </p>
<p>作用：取文件长度（以字节计）<br>原型：public int getSize() </p>
<p>8、getBinaryData </p>
<p>作用：取文件数据中指定位移处的一个字节，用于检测文件等处理。</p>
<img src ="http://www.blogjava.net/yuhuaan/aggbug/137091.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yuhuaan/" target="_blank">网豪</a> 2007-08-16 00:47 <a href="http://www.blogjava.net/yuhuaan/articles/137091.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>