來工作了那久,第一次有機會做到圖片(專案內容是證件照、銀行卡..)上傳功能,想想上傳功能要注意的點有哪些
1.權限(你的圖片不想給別人看)
2.安全性(用戶如果上傳病毒阿我要怎辦)
權限的部分:
系統管理者那些要看當初權限怎麼設計的,我們是資料庫、session、router相互配合。
不希望用戶登出的時候還能存取圖片,那這樣就要靠PHP來輸出圖片了。
https://blog.allenchou.cc/php-img/
判斷是否為圖片檔的三個方法
http://kuanghy.github.io/2015/11/25/php-isimg
圖片簡單壓縮
http://www.15jb.net/php%E5%AF%A6%E7%8F%BE%E5%9C%96%E7%89%87%E5%A3%93%E7%B8%AE%E7%9A%84%E5%85%A9%E5%89%87%E5%AF%A6%E4%BE%8B
儲存部分:
資料夾位置,盡量不要放在網站目錄下,因為萬一沒設定好,怕透過URL直接存取,像存取你首頁的圖片一樣簡單。
我會把用戶資料夾的"相對路徑"放到資料庫,讓用戶可以讀得到自己的圖片,相對路徑是因為資料夾可能會移位,不希望一動資料庫的欄位都要改
安全性的部分:
server端可以設定該目錄底下為"可讀" "不可執行"
這樣如果上傳病毒SERVER也不用怕,客戶端就自求多福
https://technet.microsoft.com/zh-tw/dd632964.aspx
http://www.blueshop.com.tw/board/FUM20041006152627A9N/BRD20110515232653FL6.html
6個”檔案上傳”功能的資訊安全風險與防護
http://www.qa-knowhow.com/?p=1472
前端拖曳上傳功能,是說前端有套件可用喔..
http://code-beginner.logdown.com/posts/313821
因為若由 php 去讀取檔案內容並輸出 , 若流量大其實對系統也是個負擔所以可以用一些 web server 特異功能可以去Google 查一下 "lighttpd sendfile" 或 "apache sendfile"可以用一串 header() 丟給 web server 去傳輸指定檔案 , 效能會快很多
https://twpug.net/discussion/5662/%E9%97%9C%E6%96%BC%E5%A6%82%E4%BD%95%E4%BF%9D%E8%AD%B7%E5%9C%96%E7%89%87%E8%88%87%E5%AD%98%E5%8F%96%E6%AC%8A%E9%99%90
以上為蒐集的資料~~~