0

こんにちは、次のコードを使用してサーバーにファイルをアップロードし、データベース内にファイル名を書き込みます。私の質問は、ファイルがアップロードされたときに、変更するファイルの名前をどのように達成できるかです。現在、ファイルが正しくアップロードされていない単語全体ではない場合、ファイル名の単語間にスペースがある場合、問題に直面しています。

コードは次のとおりです。

 $target = "../images/"; 
 $target = $target . basename( $_FILES['photo']['name']); 
 $filename = $_FILES['photo']['name'];
 if(move_uploaded_file($_FILES['photo']['tmp_name'], $target))

 //resize function 
 createThumbnail($filename); 
4

1 に答える 1

0

ファイル名を解析して不要な文字をすべて削除する必要があります。最も簡単な方法は、preg_replace 禁止文字を使用することです。次に例を示します。

// List of forbidden chars (\ and / need to be escaped with \)
$forbiddenChars = "\/\\?%*:|\"<>. ";

//Characters not allowed are replaced by this var
$replaceStr = "_";

$filename = preg_replace("/[$forbiddenChars]/", $replaceStr, $_FILES['photo']['name']);

//DEBUG: Test if everything is ok (should be deleted in production)
var_dump($filename);
于 2013-11-08T21:37:33.280 に答える