アップロード時に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」エラーを取得する - 任意のアイデア?あなたはIF文で間違ったファイルの参照しているように見えます
あなたはそれがPNGの画像だけでなく、.pngの拡張子を持つ他の形式だと確信していますか? – BartekR
うん、私はチェックした。 – Thomas
私はこの質問が正しくタイプミスのために機能していないことに気付いていましたが、そこで提供されているタイプ文字列が信頼できないことを他の人が指摘していたので対処する価値があります。これは絶対に当てはまります。ファイルに関するその他の情報を本質的にチェックしていないため、このチェックは、任意のコード(または他のもの)をシステムにアップロードできるように簡単に回避できます。このアップロードスクリプトを安全にするために他の手段を講じることをお勧めします。または近い将来にセキュリティ上の問題が発生する可能性があります。 –