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

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

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

    文件上傳實現

    文件上傳在web應用中非常普遍,要在servlet/jsp環境中實現文件上傳功能非常容易,因為網上已經有許多用java開發的組件用于文件上傳,本文以commons-fileupload組件為例,為servlet/jsp應用添加文件上傳功能。

    common-fileupload組件是apache的一個開源項目之一,可以從 http://jakarta.apache.org/commons/fileupload/ 下載。該組件簡單易用,可實現一次上傳一個或多個文件,并可限制文件大小。

    下載后解壓zip包,將commons-fileupload-1.0.jar復制到tomcat的webapps\你的webapp\WEB-INF\lib\下,如果目錄不存在請自建目錄。

    新建一個servlet: Upload.java用于文件上傳:

    ?1?import?java.io.* ;
    ?2?import?java.util.*
    ;
    ?3?import?javax.servlet.*
    ;
    ?4?import?javax.servlet.http.*
    ;
    ?5?import?org.apache.commons.fileupload.*
    ;
    ?6?

    ?7?public?class?Upload?extends ?HttpServlet?{
    ?8?

    ?9?????private?String?uploadPath?=?"C:\\upload\\";?//?用于存放上傳文件的目錄
    10?????private?String?tempPath?=?"C:\\upload\\tmp\\";?//?用于存放臨時文件的目錄
    11?
    12?????public?void ?doPost(HttpServletRequest?request,?HttpServletResponse?response)
    13?????????throws
    ?IOException,?ServletException
    14?
    ????{
    15?
    ????}
    16?
    }
    17?

    18?//當servlet收到瀏覽器發出的Post請求后,在doPost()方法中實現文件上傳。以下是示例代碼:
    19?
    20?public?void ?doPost(HttpServletRequest?request,?HttpServletResponse?response)
    21?????throws
    ?IOException,?ServletException
    22?
    {
    23?????try
    ?{
    24?????????DiskFileUpload?fu?=?new
    ?DiskFileUpload();
    25?????????//?設置最大文件尺寸,這里是4MB

    26?????????fu.setSizeMax(4194304 );
    27?????????//?設置緩沖區大小,這里是4kb

    28?????????fu.setSizeThreshold(4096 );
    29?????????//?設置臨時目錄:

    30? ????????fu.setRepositoryPath(tempPath);
    31?

    32?????????//?得到所有的文件:
    33?????????List?fileItems?= ?fu.parseRequest(request);
    34?????????Iterator?i?=
    ?fileItems.iterator();
    35?????????//?依次處理每一個文件:

    36?????????while (i.hasNext())?{
    37?????????????FileItem?fi?=
    ?(FileItem)i.next();
    38?????????????//?獲得文件名,這個文件名包括路徑:

    39?????????????String?fileName?= ?fi.getName();
    40?????????????if(fileName!=null
    )?{
    41?????????????????//
    ?在這里可以記錄用戶和文件信息
    42?????????????????//
    ?
    43?????????????????//?寫入文件a.txt,你也可以從fileName中提取文件名:

    44?????????????????fi.write(new?File(uploadPath?+?"a.txt" ));
    45?
    ????????????}
    46?
    ????????}
    47?????????//?跳轉到上傳成功提示頁面

    48? ????}
    49?????catch
    (Exception?e)?{
    50?????????//?可以跳轉出錯頁面

    51? ????}
    52?
    }
    53?

    54?//如果要在配置文件中讀取指定的上傳文件夾,可以在init()方法中執行:
    55?
    56?public?void?init()?throws ?ServletException?{
    57?????uploadPath?=
    ?.
    58?????tempPath?=
    ?.
    59?????//?文件夾不存在就自動創建:

    60?????if(!new ?File(uploadPath).isDirectory())
    61?????????new
    ?File(uploadPath).mkdirs();
    62?????if(!new
    ?File(tempPath).isDirectory())
    63?????????new
    ?File(tempPath).mkdirs();
    64?
    }
    65?

    編譯該servlet,注意要指定classpath,確保包含commons-upload-1.0.jar和tomcat\common\lib\servlet-api.jar。

    配置servlet,用記事本打開tomcat\webapps\你的webapp\WEB-INF\web.xml,沒有的話新建一個。典型配置如下:

    ?1?<?xml?version="1.0"?encoding="ISO-8859-1"?>
    ?2?<! DOCTYPE?web-app
    ?3?
    ????PUBLIC?"-//Sun?Microsystems,?Inc.//DTD?Web?Application?2.3//EN"
    ?4?????"http://java.sun.com/dtd/web-app_2_3.dtd">

    ?5?
    ?6?<web-app>
    ?7?????<servlet>
    ?8?????????<servlet-name>Upload</servlet-name>
    ?9?????????<servlet-class>Upload</servlet-class>
    10?????</servlet>
    11?
    12?????<servlet-mapping>
    13?????????<servlet-name>Upload</servlet-name>
    14?????????<url-pattern>/fileupload</url-pattern>
    15?????</servlet-mapping>
    16?</web-app>
    17?
    配置好servlet后,啟動tomcat,寫一個簡單的html測試:
    1?<form?action="fileupload"?method="post"
    2?enctype="multipart/form-data"?name="form1">
    3???<input?type="file"?name="file">
    4???<input?type="submit"?name="Submit"?value="upload">
    5?</form>

    注意action="fileupload"其中fileupload是配置servlet時指定的url-pattern。

    摘自:
    http://www.j2medev.com/Article/Class10/j2eeopensource/200409/62.html



    posted on 2006-07-06 08:35 nbt 閱讀(378) 評論(0)  編輯  收藏 所屬分類: Servele&JSP和js

    <2006年7月>
    2526272829301
    2345678
    9101112131415
    16171819202122
    23242526272829
    303112345

    導航

    統計

    常用鏈接

    留言簿(3)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    相冊

    收藏夾

    Java技術網站

    友情鏈接

    國內一些開源網站

    最新隨筆

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 无码国产精品一区二区免费式影视 | 亚洲日产2021三区| 午夜免费啪视频在线观看 | 国产婷婷综合丁香亚洲欧洲| 国产在线观看免费视频软件| 亚洲乱码中文字幕手机在线| 久久亚洲色WWW成人欧美| 啦啦啦www免费视频| 精品亚洲成A人无码成A在线观看| 亚洲精品在线免费观看| 97久久精品亚洲中文字幕无码| 日韩精品内射视频免费观看| 亚洲国产日韩一区高清在线| 日韩插啊免费视频在线观看| 99亚洲精品高清一二区| 97青青草原国产免费观看| 亚洲欧洲中文日产| 成人网站免费观看| 国产精品亚洲综合| 国产性爱在线观看亚洲黄色一级片| 2022免费国产精品福利在线| 亚洲国产精品无码久久久蜜芽 | 精品亚洲456在线播放| 女人18特级一级毛片免费视频| 亚洲AV无码成人精品区日韩 | 在线免费观看国产| 亚洲H在线播放在线观看H| 国内一级一级毛片a免费| 男女作爱免费网站| 亚洲av无码精品网站| av无码久久久久不卡免费网站| 久久久久久亚洲精品影院| 亚洲AV成人精品日韩一区18p| 三年片免费高清版 | 亚洲妇女水蜜桃av网网站| 大陆一级毛片免费视频观看| 婷婷国产偷v国产偷v亚洲| 国产精品亚洲精品日韩已方| 久久久久久影院久久久久免费精品国产小说 | 亚洲精品国产情侣av在线| 全免费一级毛片在线播放|