PHP 如果存在则重命名文件名
PHP Rename File name if Exists
我有代码可以上传文件,同时检查是否允许扩展名并且它在大小限制内,但如果上传的文件已经存在,我需要重命名它。我已经阅读了其他几篇关于此的文章,但我无法确定我需要将建议的代码放入我当前代码的确切位置。非常感谢您的帮助!
<form action="" method="POST" enctype="multipart/form-data">
<input type="file" name="image"/>
<input type="submit" value="Upload" />
</form>
<?php
if (isset ($_FILES['image'])) {
$errors = array();
$allowed_ext = array('pdf','jpg');
$file_name = $_FILES['image']['name'];
$file_ext = strtolower(end(explode('.', $file_name)));
$file_size = $_FILES['image']['size'];
$file_tmp = $_FILES['image']['tmp_name'];
if (in_array($file_ext, $allowed_ext) === false ) {
$errors[] = '<li>Extension not allowed.</li>';
}
if ($file_size > 2097152) {
$errors[] = '<li>File size must be 2mb or less.</li>';
}
if ()
if (empty($errors)) {
if (move_uploaded_file($file_tmp, 'images/'.$file_name)) {
echo '<li>File uploaded sucessfully.</li>';
echo '<li>File located at: http://' . $_SERVER[HTTP_HOST] . '/image-upload/images/' . $file_name . '</li>';
}
} else {
foreach ($errors as $error) {
echo $error, '<br />';
}
}
}
?>
您的 move_uploaded_file
第二个参数似乎不正确。
$targetPath = $_SERVER['DOCUMENT_ROOT'] . '/image-upload/images/' . $file_name;
move_uploaded_file($file_tmp, $targetPath);
你可以回显你的$targetPath
来检查它是否正确。
只需用这段代码代替空白的 if()
if (file_exists('images/'.$file_name))
{
$file_name = time().$_FILES['image']['name']; //This will rename file with current time stamp which will always unique.
}
但我强烈建议您始终重命名您的文件,以避免任何直接访问或损害。
我有代码可以上传文件,同时检查是否允许扩展名并且它在大小限制内,但如果上传的文件已经存在,我需要重命名它。我已经阅读了其他几篇关于此的文章,但我无法确定我需要将建议的代码放入我当前代码的确切位置。非常感谢您的帮助!
<form action="" method="POST" enctype="multipart/form-data">
<input type="file" name="image"/>
<input type="submit" value="Upload" />
</form>
<?php
if (isset ($_FILES['image'])) {
$errors = array();
$allowed_ext = array('pdf','jpg');
$file_name = $_FILES['image']['name'];
$file_ext = strtolower(end(explode('.', $file_name)));
$file_size = $_FILES['image']['size'];
$file_tmp = $_FILES['image']['tmp_name'];
if (in_array($file_ext, $allowed_ext) === false ) {
$errors[] = '<li>Extension not allowed.</li>';
}
if ($file_size > 2097152) {
$errors[] = '<li>File size must be 2mb or less.</li>';
}
if ()
if (empty($errors)) {
if (move_uploaded_file($file_tmp, 'images/'.$file_name)) {
echo '<li>File uploaded sucessfully.</li>';
echo '<li>File located at: http://' . $_SERVER[HTTP_HOST] . '/image-upload/images/' . $file_name . '</li>';
}
} else {
foreach ($errors as $error) {
echo $error, '<br />';
}
}
}
?>
您的 move_uploaded_file
第二个参数似乎不正确。
$targetPath = $_SERVER['DOCUMENT_ROOT'] . '/image-upload/images/' . $file_name;
move_uploaded_file($file_tmp, $targetPath);
你可以回显你的$targetPath
来检查它是否正确。
只需用这段代码代替空白的 if()
if (file_exists('images/'.$file_name))
{
$file_name = time().$_FILES['image']['name']; //This will rename file with current time stamp which will always unique.
}
但我强烈建议您始终重命名您的文件,以避免任何直接访问或损害。