PHP 文件上传更改文件名保留扩展名
PHP file upload change file name keep extension
我想更改上传文件的名称,例如,如果我选择上传文件 "image.png",我想在上传时将其重命名为 "face.png"。
我有一个 php 图片上传表单,但是它保留文件的当前名称并上传它,我现在想要一个变量名称 $custom_name 我可以编辑内容这是文件的新名称。
PHP 上传表格:
if(isset($_FILES['image'])){
$errors= array();
$custom_name = ""; // THIS IS WHERE I WANT TO INSERT NEW NAME
$file_name = $_FILES['image']['name'];
$file_size =$_FILES['image']['size'];
$file_tmp =$_FILES['image']['tmp_name'];
$file_type=$_FILES['image']['type'];
$file_ext=strtolower(end(explode('.',$_FILES['image']['name'])));
$expensions= array("png");
if(in_array($file_ext,$expensions)=== false){
$errors[]='Only PNG files';
echo "Only PNG files";
}
if($file_size > 2097152){
$errors[]='Larger than 2MB';
echo "Larger than 2MB";
}
if(empty($errors)==true){
move_uploaded_file($file_tmp,"images/quads/".$file_name);
echo "Success";
}else{
}
}
我已经尝试过串联,但就是不知道将 $custom_name 变量放在哪里。
非常感谢您的帮助
Since you said you already tried (and it looks like you really have), here is an explanation:
当您在 PHP 中上传文件时,原始文件名变为 $_FILES['image']['name']
。在您的代码中,您将此值设置为变量 $file_name
.
您已经在 $file_ext
中有了该文件的扩展名,因此您可以使用它。
如果你在$custom_name
变量中有一个特定的字符串,你可以使用:
$file_name = $custom_name . $file_ext;
move_uploaded_file
的第二个参数是您要创建的新文件的路径(在您的示例中是 "images/quads/".$file_name
)。如果变量 $file_name
将包含 $custom_name
和 $file_ext
- 你会得到你想要的。
我想更改上传文件的名称,例如,如果我选择上传文件 "image.png",我想在上传时将其重命名为 "face.png"。
我有一个 php 图片上传表单,但是它保留文件的当前名称并上传它,我现在想要一个变量名称 $custom_name 我可以编辑内容这是文件的新名称。
PHP 上传表格:
if(isset($_FILES['image'])){
$errors= array();
$custom_name = ""; // THIS IS WHERE I WANT TO INSERT NEW NAME
$file_name = $_FILES['image']['name'];
$file_size =$_FILES['image']['size'];
$file_tmp =$_FILES['image']['tmp_name'];
$file_type=$_FILES['image']['type'];
$file_ext=strtolower(end(explode('.',$_FILES['image']['name'])));
$expensions= array("png");
if(in_array($file_ext,$expensions)=== false){
$errors[]='Only PNG files';
echo "Only PNG files";
}
if($file_size > 2097152){
$errors[]='Larger than 2MB';
echo "Larger than 2MB";
}
if(empty($errors)==true){
move_uploaded_file($file_tmp,"images/quads/".$file_name);
echo "Success";
}else{
}
}
我已经尝试过串联,但就是不知道将 $custom_name 变量放在哪里。
非常感谢您的帮助
Since you said you already tried (and it looks like you really have), here is an explanation:
当您在 PHP 中上传文件时,原始文件名变为 $_FILES['image']['name']
。在您的代码中,您将此值设置为变量 $file_name
.
您已经在 $file_ext
中有了该文件的扩展名,因此您可以使用它。
如果你在$custom_name
变量中有一个特定的字符串,你可以使用:
$file_name = $custom_name . $file_ext;
move_uploaded_file
的第二个参数是您要创建的新文件的路径(在您的示例中是 "images/quads/".$file_name
)。如果变量 $file_name
将包含 $custom_name
和 $file_ext
- 你会得到你想要的。