2016-08-29 8 views
-2

単純なアップロードフォームを作成しましたが、何かをアップロードしようとするとファイル名が変更されます(例:photo.jpg >>photo.jpg.jpg - ダブル拡張)。単純なアップロードフォームと2重の拡張子

マイコード:あなたは$name変数を作成する方法ので

$place = realpath($_SERVER["PHP_SELF"]); 
$name = $place.$_FILES['file']['name']; 
$f1 = strchr($name,'.'); 
$f2 = strtolower($f1); 
$name = $place.$name.$f2; 

if ($_POST['up']) { 

    if (file_exists($name)) { 
     echo '[-] The File Already Exist ! '; 
    } else { 
     $upload = move_uploaded_file($_FILES['file']['tmp_name'],$name); 
    } 
    if (isset($upload)) { 
     echo '[+] The File "'.$_FILES['file']['name'].'" uploaded succsessfully';   
    } 
} 
+0

「ダブルエクステンション」を意味しますか? '$ name = $ _FILES ['file'] ['name']'次に拡張子を追加します: '$ name = $ place。$ name(拡張子を含む) 。$ f2'(上記の行で '$ f2'に拡張子を抽出しました)。しかし、次回は、質問してください... –

答えて

0

これがあります。

最初に作成する$name = $place.$_FILES['file']['name'];ここで、$_FILES['file']['name']はファイルのフルネームです。拡張機能付き。

その後、$nameがパス(ロジックを作成しない)であり、ファイルと拡張子の完全な名前をもう一度追加したとします。 2回目を取り除くだけです。$name = $place.$name.$f2;