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

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

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

    每日一得

    不求多得,只求一得 about java,hibernate,spring,design,database,Ror,ruby,快速開發(fā)
    最近關心的內(nèi)容:SSH,seam,flex,敏捷,TDD
    本站的官方站點是:顛覆軟件

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      220 隨筆 :: 9 文章 :: 421 評論 :: 0 Trackbacks
    key words: 上傳文件

    目里面有上傳文件的需求,我想了一下不外乎下面兩種處理方法:

    1. 在數(shù)據(jù)庫表中建立一個blob字段存放用戶上傳文件.
    2. 在服務器上建立一個文件夾保存用戶上傳文件,數(shù)據(jù)庫表中只存放該文件的url地址.

    我本人現(xiàn)在比較傾向于第2種方案, 主要原因是擔心方案1的效率(我用的是mysql數(shù)據(jù)庫)。 但是處理過程中除了維護數(shù)據(jù)庫中表的字段還要維護上傳的文件,稍微麻煩一點。

    大家在項目里面又是怎么做呢? 給我點建議!謝謝


    討論內(nèi)容見: javaeye

    robin更建議第二種方案,放在數(shù)據(jù)庫中主要的問題是 AppServer吃不消,開銷比較大.

    上面是摘錄,不過我們這里用的是Oracle9i AS,在Oracle的協(xié)作套間里一般文檔或者上傳的文件都是保存在數(shù)據(jù)庫里,還把這個特性作為Oracle 與別的協(xié)作套件之間不同的賣點。

    大家以為如何? 我直覺是Oracle的DB和oc4j的AppServer對付這個似乎沒有開銷上的擔心,但是沒有實際檢測過。

    換句話說,文件的管理是放在文件夾里方便還是數(shù)據(jù)庫里方便? 有點為難

    update (2007-5-13):
    還有一種方案結(jié)合了數(shù)據(jù)庫和IO,我認為比較可行,就是文件存在數(shù)據(jù)庫,但是下載的時候第一次從數(shù)據(jù)庫下載,然后第一次這個文件保存在一個臨時文件夾下面,以后每次下載的時候總是先檢查此臨時文件夾,如果已經(jīng)存在則直接下載,如果沒有則從數(shù)據(jù)庫重復這個動作。當然,保存在臨時文件夾下的文件的命名需要唯一,這個應該沒有問題。
    posted on 2007-01-31 09:06 Alex 閱讀(1971) 評論(4)  編輯  收藏 所屬分類: javaweb技術Oracle

    評論

    # re: [討論]上傳文件放在哪里比較合適?[未登錄] 2007-01-31 10:49 hut
    同樣為難。如果用第二種方案,最好還要將文件壓縮或者改變格式。否則在系統(tǒng)中對權(quán)限有限制的文件,管理員從硬盤上就能看到。  回復  更多評論
      

    # re: [討論]上傳文件放在哪里比較合適? 2007-01-31 10:59 Yinzhe
    選擇起來是很困難的  回復  更多評論
      

    # re: [討論]上傳文件放在哪里比較合適? 2007-01-31 11:17 BeanSoft
    數(shù)據(jù)庫反應速度比 Apache 慢不知道多少倍去了... 照這樣說新聞站點都不要做靜態(tài)頁面了, 都入庫得了. 但是大站的, 如 163, sohu, sina, 新聞都是靜態(tài)的頁面, 只有評論才會入庫. 軟件下載站一個軟件就500MB, 你再入庫...反正靜態(tài)內(nèi)容存硬盤 + 數(shù)據(jù)庫記錄管理 是不二的選擇.  回復  更多評論
      

    # re: [討論]上傳文件放在哪里比較合適? 2007-02-01 15:39 BeanSoft
    還有個問題就是 Mysql 存儲大文件的問題. 根據(jù)你的情況我基本上斷定是有點不太現(xiàn)實了:
    在MySQL3.23時(新版也是),最大允許的信息包是16MB,從4.0.1及以上版本后,該值改為了1GB。而在使用時允許值是通過max_allowed_packet來設置的,一般來說,在客戶端和服務端都會有自己的#max_allowed_packet變量,所以要改變在信息交換中使用信息包的允許大小,就要正確設置客戶端及服務端的max_allowed_packet變量。
      如果使用mysql的客戶包,那么其默認值是16MB,則可以通過以上方式來啟動mysql:
    #mysql> mysql --max_allowed_packet=32M

      如果使用服務包,那么該值默認是1MB,通過以下方式啟動:
    #mysql> mysqld --max_allowed_packet=16M
    對于4.0以前的mysql應該使用
    #mysql> mysqld --set-variable=max_allowed_packet=16M
    也可以在配置文件中使用
    [mysqld]
    max_allowed_packet=16M
    指定信息包大小,注,4.0以前用
    [mysqld]
    set-variable = max_allowed_packet=16M  回復  更多評論
      

    主站蜘蛛池模板: 亚洲人成网站色7799| 亚洲色婷婷六月亚洲婷婷6月| 国产精品四虎在线观看免费| 免费v片在线观看品善网| 亚洲欧洲日产国码无码久久99| 亚洲国产精品久久久久网站 | 亚洲视频在线一区二区三区| 亚洲噜噜噜噜噜影院在线播放| 日韩国产精品亚洲а∨天堂免| 国产精品1024在线永久免费| 在线免费中文字幕| 国产在线19禁免费观看| 国产亚洲一区二区手机在线观看 | 亚洲精品亚洲人成在线播放| 亚洲爆乳AAA无码专区| 国产精品免费久久久久久久久| 91麻豆国产免费观看| 国产大片91精品免费看3| 亚洲综合AV在线在线播放| 亚洲成a人片毛片在线| 精品视频免费在线| 久久精品毛片免费观看| 国产精品无码一区二区三区免费| 亚洲精品乱码久久久久久| 亚洲国产精品一区二区三区在线观看| 一级毛片在线播放免费| 国产精品成人免费福利| 亚洲AV中文无码乱人伦| 亚洲高清视频在线播放| 二级毛片免费观看全程| 无码国产精品一区二区免费式影视 | 亚洲中文字幕无码av在线| 性生大片视频免费观看一级| 2019中文字幕在线电影免费| 亚洲国产成人久久精品99| 亚洲国产片在线观看| 国产日韩在线视频免费播放| 成人免费午夜在线观看| 精品亚洲综合久久中文字幕| 亚洲av无码一区二区三区在线播放| 久久久久成人片免费观看蜜芽|