我試圖編寫上傳腳本,只接受上傳的PNG圖像。上傳腳本工作正常,但是當我添加png圖像檢測時,它會中斷。PHP上傳文件過濾
這是我如何把它設置了:
if ($_FILES) {
if ($_FILES["file"]["type"] == "image/png") {
$target_path = "uploads/";
$target_path = $target_path . basename($_FILES['uploadedfile']['name']);
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
echo "The file ". basename($_FILES['uploadedfile']['name']).
" has been uploaded";
} else{
echo "There was an error uploading the file, please try again!";
}
} else { echo "Not A PNG…";
}
}
當我上傳PNG圖像,我得到「不是PNG」錯誤 - 任何想法?
你確定它的PNG圖像,只有png格式的擴展而不是其他格式? – BartekR 2012-01-07 22:47:51
是的,我查過了。 – Thomas 2012-01-07 22:54:16
我意識到問題是由於名稱錯誤而導致缺少這種功能,但值得一提的是其他人已經提到,那裏提供的字符串不可信。這是絕對正確的,由於您沒有檢查關於該文件的其他任何信息,因此可以輕鬆地繞過此檢查以允許將任意代碼(或其他任何內容)上傳到您的系統。我建議採取其他措施來確保此上傳腳本的安全,否則在不久的將來可能會出現安全問題。 – 2012-01-08 00:00:54