2011-08-09 15 views
1

私は以下のスニペットを使ってファイル名と拡張子を取得していますが、ファイル名をbake23 +ファイルの拡張子に等しくするにはどうすればいいですか?アップロードされたファイルを保存する前に名前を変更するにはどうすればよいですか?

$variable = 'baKe23'; 


    $filename = $_FILES['filename']['name']; 
    $ext = $_FILES["filename"]["type"]; 

名前の変更、ファイル名が既に存在する場合:

 $filename = $_FILES['filename']['name']; 
    $extension = substr($filename, strpos($filename,'.'), 
    strlen($filename)-1); 

     $sql="SELECT filename FROM documents WHERE person_id= '$pid'"; 

    $result=mysql_query($sql); 

    $query = mysql_query($sql) or die ("Error: ".mysql_error()); 

    if ($result == "") 
    { 
    echo ""; 
    } 
    echo ""; 


    $rows = mysql_num_rows($result); 

    if($rows == 0) 
    { 
    print(""); 

    } 
    elseif($rows > 0) 
    { 
    while($row = mysql_fetch_array($query)) 
    { 

    $existing = $row['filename']; 

    print(""); 
    } 

    } 

    if ($filename === $existing) { 
$filename = $rnd_id.strrchr($_FILES['filename']['name'], "."); 

    } else { 
    $filename = $_FILES['filename']['name'];; 
    } 

答えて

4

が提出されたファイル名から拡張子を取得し、あなたの変数に追加します。

$filename = basename($filename); 
$filename = $variable . (string) strrchr($filename, '.'); 

編集:編集した質問については文字通り

$filename = $variable . '.' . $ext; 

しかし、私は画像をアップロードすることになる検討は、次のことが起こるだろう、banana-smiley.gifと呼ばれる:

$filename = 'baKe23.image/gif'; 

これはものではありませんあなたは私が推測したい。あなたは$_FILES[*]["type"]に全く頼るべきではありません。あなたがする必要があるのは、アップロードされた各ファイルを検査することです(タイプの決定、タイプの検証、アップロードされたファイルのウイルスチェッカーの実行)。これに関連し

質問はSecure File Upload and validating itIs it important to verify that the uploaded file is an actual image file?です。

+0

申し訳ありません、私は自分の質問を拡張スニペットで更新しました。 – KPO

+0

@KPO:タイプを使用しないでください。 – genesis

+0

私は新しいですので、あなたがそれをお勧めしない理由はわかりません.... – KPO

3
$variable = 'baKe23'; 
$filename = $_FILES['filename']['name']; 
$filename = $variable.strrchr($_FILES['filename']['name'], "."); 

または

$variable = 'baKe23'; 
$filename = $_FILES['filename']['name']; 
$filename = $variable.".".pathinfo($filename, PATHINFO_EXTENSION); 
+0

あなたは_really_質問を読んでいますか? – KingCrunch

+0

@KingCrunch:既に変更されています。あなたは少しdownvotingする前に待つ必要があります。ちょうど間違い – genesis

+0

申し訳ありません私は拡張スニペットで私の質問を更新しました。 – KPO

関連する問題