我的解決辦法:
的PHP文件接收日上傳的文件:
// get the name of original file
$imagem = $_FILES['arquivo']['name'];
// handle string to get extension in lower case. I think it is not a very secure handler.
$ext = strtolower(substr($imagem, strrpos($imagem, '.') + 1));
// array of extensions the validation accepts
$valid_ext = array ('ai', 'bmp', 'cdr', 'eps', 'gif', 'jpeg', 'jpg', 'pdf', 'png', 'psd', 'svg');
// checking
if(in_array($ext,$valid_ext)){
// file is ok. Do something
}
我tryed做首先檢查啞劇與file types
,$file_info
,finfo()
,getimagesize()
但任何這些行之有效。我在識別EPS和CDR擴展時遇到了一些問題。它返回「application/octet-stream」,它是未知擴展的MIME類型文件。在我的研究中,我明白那是基於OS發送Mime文件類型信息的瀏覽器,所以我們有一個問題,每個表單用戶可以爲相同的擴展名具有不同的Mime文件類型。
我也明白PHP有一個標準文件來標識Mime,但我無法處理該文件來添加有關EPS和CDR文件的信息。因此我不得不使用那個字符串檢查解決方案。
來源
2013-04-29 20:55:19
Leo