|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
在性能方面,在windows平台下,.net可能是占强项,要是把.net放在sun开发的操作系统上去运行呢?根本就运行不了,.net对其它操作系统的支持也很弱,性能也可能比不上java。对照
WEB文件上传多是网站建立中最经常使用的功效之一,我在项目开辟中几近都必要完成文件上传功效.前段工夫本人汇集了一些上传组件.这篇文章中将先容这些组件的利用办法,而且对照各自的好坏.
一,smartupload组件.
我想只需做个文件上传的伴侣都晓得这个组件,我熟悉的人中利用最多的也是它!我刚到公司的时分,公司也利用的smartupload,这个组件上传绝对较小的文件时是个不错的选择.上面给出个利用的例子:
<%@pagecontentType="text/html;charset=gb2312"%><%@pageimport="java.sql.*"%><%@pageimport="com.jspsmart.upload.*"%>
<%//实例化上载beanSmartUploadmySmartUpload=newSmartUpload();//初始化mySmartUpload.initialize(pageContext);//设置上载的最年夜值,注重:假如这里设置过年夜会呈现成绩!mySmartUpload.setMaxFileSize(500*1024*1024);//上载文件mySmartUpload.upload();//轮回获得一切上载的文件for(inti=0;i<mySmartUpload.getFiles().getCount();i++){//获得上载的文件com.jspsmart.upload.FilemyFile=mySmartUpload.getFiles().getFile(i);if(!myFile.isMissing()){//获得上载的文件的文件名StringmyFileName=myFile.getFileName();//获得不带后缀的文件名Stringsuffix=myFileName.substring(0,myFileName.lastIndexOf(.));//获得后缀名Stringext=mySmartUpload.getFiles().getFile(0).getFileExt();//获得文件的巨细intfileSize=myFile.getSize();//保留路径Stringaa=getServletContext().getRealPath("/")+"jsp";Stringtrace=aa+myFileName;//获得其余参数Stringexplain=(String)mySmartUpload.getRequest().getParameter("text");Stringsend=(String)mySmartUpload.getRequest().getParameter("send");//将文件保留在服务器端myFile.saveAs(trace,mySmartUpload.SAVE_PHYSICAL);%>
可是利用smartupload上传过年夜文件,大概多文件的时分大概呈现CPU或内存占用太高的成绩.而且:只要从头启动容器才干恢复一般!这恰是我最初我保持了利用smartupload的缘故原由.
二,commons-fileupload组件
这个组件是我如今利用的组件,下载地点:http://jakarta.apache.org/site/downloads/downloads_commons-fileupload.cgi,包内包括了API文档.
利用该组件的例子:
<%@pagelanguage=“java”contentType=“text/html;charset=GBK”%><%@pageimport=“java.util.*”%><%@pageimport=“org.apache.commons.fileupload.*”%><html><head><title>文件上传</title></head><%DiskFileUploadfu=newDiskFileUpload();//设置同意用户上传文件巨细,单元:字节fu.setSizeMax(10000000);//设置最多只同意在内存中存储的数据,单元:字节fu.setSizeThreshold(4096);//设置一旦文件巨细凌驾getSizeThreshold()的值时数据寄存在硬盘的目次fu.setRepositoryPath(“D:Tomcat5TEMP”);//入手下手读取上传信息ListfileItems=fu.parseRequest(request);//顺次处置每一个上传的文件Iteratoriter=fileItems.iterator();while(iter.hasNext()){FileItemitem=(FileItem)iter.next();//疏忽其他不是文件域的一切表单信息if(!item.isFormField()){Stringname=item.getName();item.write(“D:UploadTest”+name);}}%>
从下面的程序能够看出,该组件上传时分能够用了一个中央来存储一时文件,呆上传完成后间接把文件写已往.如许就不会占用过量的内存!并且该组件上传年夜文件的时分效力也不低哦!
在这两个的对照选择中,我选择了后者,由于我做的项目中常常上传年夜于10M的文件,用前者的时分服务器几近被整溃散.
不外,如今我已不必这两种组件了,由于http体例传文件效力一直很低,我们如今利用的是web体例完成的ftp文件上传,我将鄙人篇文章中写我在项目中是怎样完成的.
其实你不用Struts,spring这些工具,直接用jsp,servlet能够很方便地写出来,而且,可以根据个人的水平、爱好,有很多方案。而struts,spring这些工具的出来。 |
|