简单的文件上传-如何添加.jpg扩展名


Simple file upload - how to add .jpg extension

我正在创建一个非常简单的管理面板,我希望能够上传一个文件,但这将是唯一一个具有静态名称的文件。我有这个代码:

<form enctype="multipart/form-data" action="upload.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="512000" />
Send this file: <input name="userfile" type="file" />
<input type="submit" value="Send File" />

<?php
$uploaddir = 'uploads/';
$uploadfile = $uploaddir . basename(uploadedfile.jpg);
echo "<p>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
  echo "File is valid, and was successfully uploaded.'n";
} else {
   echo "Upload failed";
}
echo "</p>";
echo '<pre>';
echo 'Here is some more debugging info:';
print_r($_FILES);
print "</pre>";
?> 

这是有效的,但文件是以"uploadedfilejpg"的名称上传的,所以并没有扩展名。如何修复此问题以添加扩展?我只想上传jpg文件并覆盖旧文件。

您的PHP脚本在第4行出现错误。您得到了basename(uploadedfile.jpg),这是一个错误。我想你是想写basename('uploadedfile.jpg'),但由于在文件名上使用basename只会返回文件名(感谢@CBroe注意到这一点),所以你最好只使用'uploadedfile.jpg'

它应该是这样的:

<?php
$uploaddir = 'uploads/';
$uploadfile = $uploaddir . 'uploadedfile.jpg';
echo "<p>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
  echo "File is valid, and was successfully uploaded.'n";
} else {
   echo "Upload failed";
}
echo "</p>";
echo '<pre>';
echo 'Here is some more debugging info:';
print_r($_FILES);
print "</pre>";
?>

替换此行:

$uploadfile = $uploaddir . basename('uploadedfile.jpg');

带有:

$uploadfile = $uploaddir . basename('uploadedfile.jpg'). '.jpg';