我想更改上传文件的名称,例如,如果我选择上传文件“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变量。
非常感谢你的帮助
答案 0 :(得分:1)
既然你说你已经尝试过(看起来你真的有),这里有一个解释:
在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
- 您将获得所需内容。