<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    風(fēng)人園

    弱水三千,只取一瓢,便能解渴;佛法無(wú)邊,奉行一法,便能得益。
    隨筆 - 99, 文章 - 181, 評(píng)論 - 56, 引用 - 0
    數(shù)據(jù)加載中……

    Smartupload和commons-fileupload介紹與比較

    WEB文件上傳可能是網(wǎng)站建設(shè)中最常用的功能之一,我在項(xiàng)目開(kāi)發(fā)中幾乎都需要實(shí)現(xiàn)文件上傳功能.前段時(shí)間自己搜集了一些上傳組件.這篇文章中將介紹這些組件的使用方法,并且比較各自的優(yōu)劣.

    一,smartupload組件.

    我想只要做個(gè)文件上傳的朋友都知道這個(gè)組件,我認(rèn)識(shí)的人中使用最多的也是它!我剛到公司的時(shí)候,公司也使用的smartupload,這個(gè)組件上傳相對(duì)較小的文件時(shí)是個(gè)不錯(cuò)的選擇.下面給出個(gè)使用的例子:

      
    <%@ page contentType="text/html;charset=gb2312"%>
    <%@ page import="java.sql.*"%>
    <%@ page import="com.jspsmart.upload.*" %>

    <%
    ?? //實(shí)例化上載bean
    ??? SmartUpload mySmartUpload=new SmartUpload();
    ??? //初始化
    ??? mySmartUpload.initialize(pageContext);
    ??? //設(shè)置上載的最大值,注意:如果這里設(shè)置過(guò)大會(huì)出現(xiàn)問(wèn)題!
    ??? mySmartUpload.setMaxFileSize(500 * 1024*1024);
    ??? //上載文件
    ??? mySmartUpload.upload();
    ?? //循環(huán)取得所有上載的文件
    ?? for (int i=0;i<mySmartUpload.getFiles().getCount();i++){
    ?? //取得上載的文件
    ?? com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(i);
    ?? if (!myFile.isMissing())
    ??? {
    ?? //取得上載的文件的文件名
    ??? String myFileName=myFile.getFileName();
    ??? //取得不帶后綴的文件名
    ??? String? suffix=myFileName.substring(0,myFileName.lastIndexOf('.'));
    ??? //取得后綴名
    ??? String? ext= mySmartUpload.getFiles().getFile(0).getFileExt();?
    ??? //取得文件的大小?
    ??? int fileSize=myFile.getSize();
    ??? //保存路徑
    ??? String aa=getServletContext().getRealPath("/")+"jsp\\";
    ??? String trace=aa+myFileName;
    ??? //取得別的參數(shù)
    ??? String explain=(String)mySmartUpload.getRequest().getParameter("text");
    ??? String send=(String)mySmartUpload.getRequest().getParameter("send");
    ??? //將文件保存在服務(wù)器端
    ??? myFile.saveAs(trace,mySmartUpload.SAVE_PHYSICAL);
    ??? %>


    但是使用smartupload上傳過(guò)大文件,或者多文件的時(shí)候可能出現(xiàn)CPU或內(nèi)存占用過(guò)高的問(wèn)題.并且:只有重新啟動(dòng)容器才能恢復(fù)正常!這正是我最后我放棄了使用smartupload的原因.

    二,commons-fileupload組件

    這個(gè)組件是我現(xiàn)在使用的組件,下載地址:http://jakarta.apache.org/site/downloads/downloads_commons-fileupload.cgi,包內(nèi)包含了API文檔.

    使用該組件的例子:

    <%@ page language=“java”contentType=“text/html;charset=GBK”%>
    <%@ page import=“java.util.*”%>
    <%@ page import=“org.apache.commons.fileupload.*”%>
    <html>
    <head>
    <title>文件上傳</title>
    </head>
    <%
    ?DiskFileUpload fu = new DiskFileUpload();
    ?// 設(shè)置允許用戶上傳文件大小,單位:字節(jié)
    ?fu.setSizeMax(10000000);
    ?// 設(shè)置最多只允許在內(nèi)存中存儲(chǔ)的數(shù)據(jù),單位:字節(jié)
    ?fu.setSizeThreshold(4096);
    ?// 設(shè)置一旦文件大小超過(guò)getSizeThreshold()的值時(shí)數(shù)據(jù)存放在硬盤的目錄
    ?fu.setRepositoryPath(“D:\\Tomcat5\\TEMP”);
    ?//開(kāi)始讀取上傳信息
    ?List fileItems = fu.parseRequest(request);
    ?// 依次處理每個(gè)上傳的文件
    ?Iterator iter = fileItems.iterator();
    ?while (iter.hasNext()) {
    ? FileItem item = (FileItem) iter.next();
    ? //忽略其他不是文件域的所有表單信息
    ? if (!item.isFormField()) {
    ?? String name = item.getName();
    ?? item.write(“D:\\UploadTest\\”+ name);
    ?}
    }
    %>

    從上面的程序可以看出,該組件上傳時(shí)候可以用了一個(gè)地方來(lái)存儲(chǔ)臨時(shí)文件,呆上傳完成后直接把文件寫過(guò)去.這樣就不會(huì)占用過(guò)多的內(nèi)存!而且該組件上傳大文件的時(shí)候效率也不低哦!

    在這兩個(gè)的對(duì)比選擇中,我選擇了后者,因?yàn)槲易龅捻?xiàng)目中經(jīng)常上傳大于10M的文件,用前者的時(shí)候服務(wù)器幾乎被整崩潰.

    不過(guò),現(xiàn)在我已經(jīng)不用這兩種組件了,因?yàn)閔ttp方式傳文件效率始終很低,我們現(xiàn)在使用的是web方式實(shí)現(xiàn)的ftp文件上傳,我將在下篇文章中寫我在項(xiàng)目中是如何實(shí)現(xiàn)的.

    posted on 2006-06-27 10:33 風(fēng)人園 閱讀(401) 評(píng)論(0)  編輯  收藏 所屬分類: Web

    主站蜘蛛池模板: 国产亚洲精品成人久久网站| 一级中文字幕免费乱码专区 | 免费在线黄色电影| 久久久久亚洲精品天堂| 在线免费观看韩国a视频| 国内精品免费久久影院| 亚洲免费电影网站| 亚洲片一区二区三区| 四虎在线免费视频| 青青久久精品国产免费看| 91亚洲国产成人久久精品网站| 成人午夜性A级毛片免费| ww在线观视频免费观看w| 亚洲国产综合精品| 亚洲麻豆精品国偷自产在线91| 日韩人妻无码精品久久免费一| 亚洲欧洲∨国产一区二区三区| 嘿嘿嘿视频免费网站在线观看| 黄色免费在线观看网址| 亚洲妇女水蜜桃av网网站| 久久久久噜噜噜亚洲熟女综合| 在线观看无码AV网站永久免费| 中国内地毛片免费高清| 亚洲爆乳无码专区www| 久久精品a亚洲国产v高清不卡 | 亚洲国产成人乱码精品女人久久久不卡 | 亚洲精品在线视频| 无码国产精品久久一区免费| 水蜜桃视频在线观看免费播放高清| 亚洲综合无码一区二区痴汉| 亚洲免费在线视频| 中文字幕亚洲图片| 亚洲国产精品一区二区三区久久| 免费无码又黄又爽又刺激| 一级特黄aa毛片免费观看| 亚洲一级片免费看| 日韩免费高清一级毛片| 亚洲av中文无码字幕色不卡 | 激情小说亚洲图片| 亚洲乱码无人区卡1卡2卡3| 亚洲天堂福利视频|