0

アップロード時にファイル名が存在する場合は変更しようとしていますが、問題があるようです。これがコードです。

$tempfilename = $filename["name"]; 
while(file_exists($location . $tempfilename))
{
    $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; 
    $shuffled = str_shuffle($chars);
    $stringa = substr($shuffled,0,7);
    move_uploaded_file($filename["tmp_name"], $location . $filename["name"]);
    $tempfilename = $stringA.$filename["name"];
}
move_uploaded_file($filename["tmp_name"], $location.$stringa.$filename["name"]);
clearstatcache();

これはうまくいかないようで、

私が何が欠けているのかわからない。

4

1 に答える 1

1

PHP変数名では、大文字と小文字が区別されます。

$stringA !== $stringa

しかし、シャッフルストリングなどをいじくり回すのではなく、カウンターを使うことを考えたことがありますか?

$tempfilename = $filename["name"];
for ($i = 0; file_exists($location . $tempfilename); $i++) {
    $tempfilename = $i . $filename["name"];
}
move_uploaded_file($filename["tmp_name"], $location . $tempfilename);
于 2012-07-20T22:44:37.163 に答える