仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 652|回复: 11
打印 上一主题 下一主题

[学习教程] JAVA网站制作之jspSmartUpload上传下载全攻略(二)

[复制链接]
谁可相欹 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:20:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
net程序员的大部门代码都靠控件拖拽完成的,虽然java也有,但是无论从美观和速度上都没发和.net比。java程序员都是代码完成的,所以java程序员常戏称.net程序员是操作员,呵呵。js|攻略|上传|下载2、相干类申明篇
㈠File类
  这个类包装了一个上传文件的一切信息。经由过程它,能够失掉上传文件的文件名、文件巨细、扩大名、文件数据等信息。
  File类次要供应以下办法:
1、saveAs感化:将文件换名另存。
原型:
publicvoidsaveAs(java.lang.StringdestFilePathName)

publicvoidsaveAs(java.lang.StringdestFilePathName,intoptionSaveAs)
个中,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:uploadsample.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。
原型:publicbooleanisMissing()
3、getFieldName
感化:取HTML表单中对应于此上传文件的表单项的名字。
原型:publicStringgetFieldName()
4、getFileName
感化:取文件名(不含目次信息)
原型:publicStringgetFileName()
5、getFilePathName
感化:取文件全名(带目次)
原型:publicStringgetFilePathName
6、getFileExt
感化:取文件扩大名(后缀)
原型:publicStringgetFileExt()
7、getSize
感化:取文件长度(以字节计)
原型:publicintgetSize()
8、getBinaryData
感化:取文件数据中指定位移处的一个字节,用于检测文件等处置。
原型:publicbytegetBinaryData(intindex)。个中,index暗示位移,其值在0到getSize()-1之间。
㈡Files类
  这个类暗示一切上传文件的汇合,经由过程它能够失掉上传文件的数量、巨细等信息。有以下办法:
1、getCount
感化:获得上传文件的数量。
原型:publicintgetCount()
2、getFile
感化:获得指定位移处的文件对象File(这是com.jspsmart.upload.File,不是java.io.File,注重辨别)。
原型:publicFilegetFile(intindex)。个中,index为指定位移,其值在0到getCount()-1之间。
3、getSize
感化:获得上传文件的总长度,可用于限定一次性上传的数据量巨细。
原型:publiclonggetSize()
4、getCollection
感化:将一切上传文件对象以Collection的情势前往,以便别的使用程序援用,扫瞄上传文件信息。
原型:publicCollectiongetCollection()
5、getEnumeration
感化:将一切上传文件对象以Enumeration(列举)的情势前往,以便别的使用程序扫瞄上传文件信息。
原型:publicEnumerationgetEnumeration()
㈢Request类
  这个类的功效同等于JSP内置的对象request。只以是供应这个类,是由于关于文件上传表单,经由过程request对象没法取得表单项的值,必需经由过程jspSmartUpload组件供应的Request对象来猎取。该类供应以下办法:
1、getParameter
感化:猎取指定参数之值。当参数不存在时,前往值为null。
原型:publicStringgetParameter(Stringname)。个中,name为参数的名字。
2、getParameterValues
感化:当一个参数能够有多个值时,用此办法来取其值。它前往的是一个字符串数组。当参数不存在时,前往值为null。
原型:publicString[]getParameterValues(Stringname)。个中,name为参数的名字。
3、getParameterNames
感化:获得Request对象中一切参数的名字,用于遍历一切参数。它前往的是一个列举型的对象。
原型:publicEnumerationgetParameterNames()
㈣SmartUpload类这个类完成上传下载事情。
A.上传与下载共用的办法:
只要一个:initialize。
感化:实行上传下载的初始化事情,必需第一个实行。
原型:有多个,次要利用上面这个:
publicfinalvoidinitialize(javax.servlet.jsp.PageContextpageContext)
个中,pageContext为JSP页面内置对象(页面高低文)。
B.上传文件利用的办法:
1、upload
感化:上传文件数据。关于上传操纵,第一步实行initialize办法,第二步就要实行这个办法。
原型:publicvoidupload()
2、save
感化:将全体上传文件保留到指定目次下,并前往保留的文件个数。
原型:publicintsave(StringdestPathName)
和publicintsave(StringdestPathName,intoption)
个中,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
感化:取上传文件数据的总长度
原型:publicintgetSize()
4、getFiles
感化:取全体上传文件,以Files对象情势前往,能够使用Files类的操纵办法来取得上传文件的数量等信息。
原型:publicFilesgetFiles()
5、getRequest
感化:获得Request对象,以便由此对象取得上传表单参数之值。
原型:publicRequestgetRequest()
6、setAllowedFilesList
感化:设定同意上传带有指定扩大名的文件,当上传过程当中有文件名不同意时,组件将抛出非常。
原型:publicvoidsetAllowedFilesList(StringallowedFilesList)
个中,allowedFilesList为同意上传的文件扩大名列表,各个扩大名之间以逗号分开。假如想同意上传那些没有扩大名的文件,能够用两个逗号暗示。比方:setAllowedFilesList("doc,txt,,")将同意上传带doc和txt扩大名的文件和没有扩大名的文件。
7、setDeniedFilesList
感化:用于限定上传那些带有指定扩大名的文件。如有文件扩大名被限定,则上传时组件将抛出非常。
原型:publicvoidsetDeniedFilesList(StringdeniedFilesList)
个中,deniedFilesList为克制上传的文件扩大名列表,各个扩大名之间以逗号分开。假如想克制上传那些没有扩大名的文件,能够用两个逗号来暗示。比方:setDeniedFilesList("exe,bat,,")将克制上传带exe和bat扩大名的文件和没有扩大名的文件。
8、setMaxFileSize
感化:设定每一个文件同意上传的最年夜长度。
原型:publicvoidsetMaxFileSize(longmaxFileSize)
个中,maxFileSize为为每一个文件同意上传的最年夜长度,当文件超越此长度时,将不被上传。
9、setTotalMaxFileSize
感化:设定同意上传的文件的总长度,用于限定一次性上传的数据量巨细。
原型:publicvoidsetTotalMaxFileSize(longtotalMaxFileSize)
个中,totalMaxFileSize为同意上传的文件的总长度。
C.下载文件经常使用的办法
1、setContentDisposition
感化:将数据追加到MIME文件头的CONTENT-DISPOSITION域。jspSmartUpload组件会在前往下载的信息时主动填写MIME文件头的CONTENT-DISPOSITION域,假如用户必要增加分外信息,请用此办法。
原型:publicvoidsetContentDisposition(StringcontentDisposition)
个中,contentDisposition为要增加的数据。假如contentDisposition为null,则组件将主动增加"attachment;",以标明将下载的文件作为附件,了局是IE扫瞄器将会提醒另存文件,而不是主动翻开这个文件(IE扫瞄器一样平常依据下载的文件扩大名决意实行甚么操纵,扩大名为doc的将用word程序翻开,扩大名为pdf的将用acrobat程序翻开,等等)。
2、downloadFile
感化:下载文件。
原型:共有以下三个原型可用,第一个最经常使用,后两个用于特别情形下的文件下载(如变动内容范例,变动另存的文件名)。
①publicvoiddownloadFile(StringsourceFilePathName)
个中,sourceFilePathName为要下载的文件名(带目次的文件全名)
②publicvoiddownloadFile(StringsourceFilePathName,StringcontentType)
个中,sourceFilePathName为要下载的文件名(带目次的文件全名),contentType为内容范例(MIME格局的文件范例信息,可被扫瞄器辨认)。
③publicvoiddownloadFile(StringsourceFilePathName,StringcontentType,StringdestFileName)
个中,sourceFilePathName为要下载的文件名(带目次的文件全名),contentType为内容范例(MIME格局的文件范例信息,可被扫瞄器辨认),destFileName为下载后默许的另存文件名。


对于一个大型项目,如果用java来作,可能需要9个月,并且可能需要翻阅10本以上的书,但如果用ruby来作,3个月,3本书就足够了,而.net也不过3,4本书足以,这就是区别。
活着的死人 该用户已被删除
沙发
发表于 2015-1-19 18:59:54 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
山那边是海 该用户已被删除
板凳
发表于 2015-1-24 15:25:04 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
深爱那片海 该用户已被删除
地板
发表于 2015-1-29 06:56:05 | 只看该作者
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
灵魂腐蚀 该用户已被删除
5#
发表于 2015-2-1 10:13:42 | 只看该作者
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
飘飘悠悠 该用户已被删除
6#
发表于 2015-2-7 03:09:03 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
admin 该用户已被删除
7#
发表于 2015-2-19 23:38:40 | 只看该作者
是一种为 Internet发展的计算机语言
若天明 该用户已被删除
8#
发表于 2015-3-6 15:46:56 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
9#
发表于 2015-3-7 03:41:57 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
柔情似水 该用户已被删除
10#
发表于 2015-3-8 17:14:50 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
老尸 该用户已被删除
11#
发表于 2015-3-16 07:26:39 | 只看该作者
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
小女巫 该用户已被删除
12#
发表于 2015-3-22 21:08:22 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
只想知道 该用户已被删除
13#
发表于 2015-3-22 21:08:22 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
愤怒的大鸟 该用户已被删除
14#
发表于 2015-3-22 21:09:24 | 只看该作者
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-14 22:20

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表