<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,快速開發
    最近關心的內容:SSH,seam,flex,敏捷,TDD
    本站的官方站點是:顛覆軟件

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

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

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

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

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


    討論內容見: javaeye

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

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

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

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

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

    評論

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

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

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

    # re: [討論]上傳文件放在哪里比較合適? 2007-02-01 15:39 BeanSoft
    還有個問題就是 Mysql 存儲大文件的問題. 根據你的情況我基本上斷定是有點不太現實了:
    在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  回復  更多評論
      

    主站蜘蛛池模板: 国内永久免费crm系统z在线 | 日韩视频免费在线| 激情综合亚洲色婷婷五月| 久久精品免费一区二区| 337p欧洲亚洲大胆艺术| 久久国产高潮流白浆免费观看| 亚洲五月六月丁香激情| 67194国产精品免费观看| 亚洲国产成人资源在线软件| 99久久免费国产香蕉麻豆| 亚洲av永久无码精品三区在线4| 美女视频黄是免费的网址| 亚洲日本一线产区和二线| 国产成人精品免费直播| 四虎影视久久久免费观看| 中文字幕不卡亚洲| 一级毛片免费毛片一级毛片免费| 亚洲高清免费在线观看| 成人免费在线观看网站| 未满十八私人高清免费影院| 亚洲国产精品一区二区久久hs| 色欲国产麻豆一精品一AV一免费| 亚洲一级毛片视频| 免费国产在线观看| 无码专区AAAAAA免费视频| 中文字幕 亚洲 有码 在线| 亚洲AV无码之日韩精品| 国产一级片免费看| 国产亚洲精品VA片在线播放| 亚洲国产91精品无码专区| 日韩插啊免费视频在线观看| 一本色道久久88—综合亚洲精品| 亚洲欧洲国产成人综合在线观看| 无码人妻久久一区二区三区免费 | 春暖花开亚洲性无区一区二区| 久久久久亚洲AV无码专区桃色| 久久午夜羞羞影院免费观看| 亚洲妇女无套内射精| 亚洲成色www久久网站夜月| 四虎成人精品一区二区免费网站 | 国产精品色拉拉免费看|