0

私はファイルのアップロードが初めてで、セキュリティが巨大であることを認識しています。セキュリティに飛び込む前に、テスト目的で、次の「セキュリティ」を試したときに、簡単なテストアップロードを開始したかっただけです

<?PHP
$name = $_FILES['file']['name'];
$type = $_FILES['file']['type'];
$tmp_name = $_FILES['file']['tmp_name'];

if(isset($name)) {
    if (!empty($name)) {
    $location = "ufiles/";  
    if($_FILES['file']['type'] == "images/jpeg" || $_FILES['file']['type'] == "images/png"){

    move_uploaded_file($tmp_name, $location.$name);
                }
            }
        }
?>

このコードは機能していないようで、ファイル タイプ チェック ポイントを外さない限り、ファイルはアップロードされません。だから、それは明らかに私の問題です。しかし、なぜこれが機能しないのでしょうか。

また、ファイルタイプを保護するのにあまり効果的な方法ではないことはわかっていますが、最も単純に論理的であるように思われ、なぜ機能しないのか非常に混乱しています.

編集常に構文を確認してください。笑

if($_FILES['file']['type'] == "images/jpeg" || $_FILES['file']['type'] == "images/png")   
4

4 に答える 4

1

「image s /jpeg」ではなく「image/jpeg」です。PNGタイプも同様です。

$_files$ _FILES である必要があります(Oberst & Dagon が言及)。PHP 変数は大文字と小文字を区別します。

そのようです:

if(isset($name)) {
    if (!empty($name)) {
    $location = "ufiles/";  
    if($_FILES['file']['type'] == "image/jpeg" || $_FILES['file']['type'] == "image/png"){

    move_uploaded_file($tmp_name, $location.$name);
                }
            }
        }
?>
于 2013-05-16T04:07:30.877 に答える
0

コンテンツ タイプをimage/jpegおよびに変更してみてくださいimage/png

于 2013-05-16T04:07:44.923 に答える