[php] 上傳圖片要存在哪好

未分類
寫部落格有個小困擾
沒有固定的時間 坐在電腦桌前面 想想要寫什麼主題
而是平常想到什麼要寫的 先開個主題
然後有空的時候 再坐下來複習之前想到的東西

所以常常都會發生這種事情
就是幾天以後 回顧之前寫的標題
已經忘記這篇原本要寫什麼...

還好想起來了...XD





其實這個問題是這樣來的
以前的案子, 如果有檔案上傳的功能 (像是傳一些產品圖片)
傳統的方法是直接寫在檔案裡面

但是因為怕有人惡意上傳一些怪東西 (像是 .php 的檔案)
然後把它當成程式來執行
所以後來都把內容塞到資料庫裡面了

顯示圖片的時候 也透過程式去把它 render 出來
這樣就算是裡面有藏一些 code, 也會被當做圖片顯示
風險比較小



案例1:
可是呢
最近有個電子商務的案子
圖片實在是太多了
已經吃掉資料庫約1G的大小
導致一些欄位在抓取的時候變得很慢
不過後來在某些欄位加入了 INDEX 之後
就恢復正常了
(所以不是圖片存在資料庫裡面的問題)



案例2:
又有另一個電子商務的案子
也是有大量圖片
案子驗收的時候也沒啥大問題
結果放到客人租的虛擬主機上以後

客人問說
資料庫怎麼那麼大
(客人上完部分資料以後 資料庫吃了三百多MB)
我說正常啊 你圖片這麼多

結果是因為 主機的資料庫空間不夠
所以害他要加錢

我說 怎麼可能
上面那個1G的案例 主機空間都夠
為什麼這個個案才三百多MB 就不夠用了

客人給了他租的主機規格
我看了真的快要躺在地上打滾

MYSQL免費空間: 25MB
網頁免費空間: 250MB
流量是 10G/月
這樣的價錢是 5000 NTD/年
天啊 現在還有這種規格嘛?



雖然爛歸爛
但是這意味還是有客人需要把圖片存在檔案系統裡面
因為無法阻止客人亂租虛擬主機這件事情...

所以有打算要把圖片存在資料庫 或是存在檔案系統
做成可以由設定檔控制的功能

結論:
客人如果會照著你的意志走
那就不是客人啦