1
我正在嘗試清理上傳文件的文件名。清理上傳文件的名稱
我想取代一切,這是不是一個數字或字母,並將其替換空間 -
我:
$finalName = preg_replace('/[^a-z0-9][ ]/', '-', strtolower(substr($finalName, 0, strpos($finalName, '.')))) ;
不工作。
有人可以幫我解決我的正則表達式嗎?
需要注意的是:
substr($finalName, 0, strpos($finalName, '.'))
僅僅是如此它的工作原理上的文件名,而不是點或擴展。
不要消毒上傳的文件名,使自己的!當有人上傳衝突名稱的文件時會發生什麼?當有人開始消毒時會發生什麼?您的文件名應該基於順序。 – Brad
@Brad優秀的一點,我決定採取您的建議,並讓用戶輸入一個seo友好的圖像名稱,例如描述性圖像名稱,然後進行驗證。 – imperium2335
我做的是:不要將用戶文件存儲在doc根目錄中。絕不允許用戶指定文件名。將文件信息保存在數據庫中,然後根據請求返回文件數據。基本上,您以這種方式製作安全透明的存儲機制。另外,絕對不要相信用戶的內容類型。 – Brad