php 上傳檔案 判斷 檔案類型
我 現在 想 上傳 一個 csv 檔案,
在 php 裡 怎麼 判斷 這個 檔案 類型 是 csv 的呢?
註:
除了 判斷 副檔名 之外,還有 什麼 判段 的 方法??
------解決方案--------------------
$_FILES["file"]["type"]
------解決方案--------------------
探討
$_FILES["file"]["type"]
------解決方案--------------------
學習了!!!!!!!!!!!!!!!
------解決方案--------------------
樓主非要把簡單的事情複雜化。那也沒辦法!
------解決方案--------------------
網上流傳的一個不錯的方法
PHP code
function ftype($filename){ $file = fopen($filename, "rb"); $bin = fread($file, 2); //唯讀2位元組 fclose($file); $strInfo = @unpack("C2chars", $bin); $typeCode = intval($strInfo['chars1'].$strInfo['chars2']); $fileType = ''; switch($typeCode){ case 7790: $fileType = 'exe'; break; case 7784: $fileType = 'midi'; break; case 8297: $fileType = 'rar'; break; case 255216: $fileType = 'jpg'; break; case 7173: $fileType = 'gif'; break; case 6677: $fileType = 'bmp'; break; case 13780: $fileType = 'png'; break; default: $fileType = 'unknown'; } return $fileType;}
------解決方案--------------------
我認為8樓得方法已經盡最大程度判定了,按照樓主的意思就是上傳的檔案如何判定其內容是不是csv格式的(不相信副檔名),那就只能擷取檔案裡面內容,並根據裡面內容的形式判定是不是csv檔案,但是這種辦法是要在後台實現的,也就是說此時檔案已經上傳了,上傳了再判定就沒有什麼用了。所以,個人認為,不上傳,還要判斷內容形式,沒什麼好的解決辦法。
------解決方案--------------------
探討
我的 意思是 csv 不是 用 , 這個 隔開的 檔案 嗎
aa,bb,cc,dd
ee,ff,gg,hh
類似 這樣的 檔案
按 8樓 的 說法 這個 檔案 的 typeCode=131112
可是
aa,"b
b",cc,dd
ee,ff,gg,hh
這個 樣子 也 是正確 的 csv 格式 類型 但是 這個 檔案 的 typeCode=105105
……