<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  回復  更多評論
      

    主站蜘蛛池模板: 在线观看亚洲精品国产| 亚洲欧洲中文日韩久久AV乱码| 好看的亚洲黄色经典| 久久嫩草影院免费看夜色| 久久亚洲国产精品123区| 中文字幕成人免费高清在线视频| 成人午夜亚洲精品无码网站| a毛片免费在线观看| 亚洲成av人在线视| 久操免费在线观看| 亚洲女人影院想要爱| 久久久久久久免费视频| 亚洲欧美日韩中文无线码| 国产不卡免费视频| 亚洲天堂免费在线视频| 亚洲国产精品一区二区久久hs| 四虎成人精品永久免费AV| 亚洲狠狠ady亚洲精品大秀| 97在线观看永久免费视频| 亚洲熟妇AV日韩熟妇在线| 国产男女猛烈无遮挡免费视频网站| 老司机免费午夜精品视频| 亚洲一级黄色视频| 少妇太爽了在线观看免费视频| 久久精品国产亚洲av麻豆蜜芽| 四虎影视www四虎免费| 九一在线完整视频免费观看| 亚洲AV日韩AV天堂久久 | 久久亚洲国产最新网站| 国产精品久久香蕉免费播放| 黄床大片30分钟免费看| 久久久久亚洲av无码专区蜜芽| 国产免费女女脚奴视频网| 爱情岛论坛亚洲品质自拍视频网站 | 亚洲av无码成人精品国产 | 亚洲小视频在线播放| 在线观看人成网站深夜免费| 香蕉免费一级视频在线观看| 亚洲综合校园春色| 久久久久久久亚洲精品| 青娱分类视频精品免费2|