-1

我使用 php 将图像上传到我的站点,我想在它们上传后立即重命名它们,然后再将它们放置在服务器目录中,这样我就可以消除由于文件名称而导致图像被覆盖的机会,如下所示是我尝试过的代码:

function generateRandomString($length = 10) {
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$randomString = '';
for ($i = 0; $i < $length; $i++) {
    $randomString .= $characters[rand(0, strlen($characters) - 1)];
}
return $randomString;
}

$uploaddir = 'tmp-uploads/';

$newFileName = generateRandomString(20);
rename($_FILES['userfile']['name'], $newFileName);

$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    // do something else
}
4

1 回答 1

0

$_FILES['userfile']['name']只是变量中的名称它不是文件,如果要更改其值只需使用赋值。

$newFileName = generateRandomString(20);
$_FILES['userfile']['name'] = $newFileName;

或者只是使用$newFileName而不是$_FILES['userfile']['name']

于 2013-04-27T19:59:59.260 回答