php 上传更改文件名 (你怎样在PHP中上传并更改文件名?)
在开发 Web 应用程序时,文件上传可能是一个非常重要的功能。PHP 提供了内置函数来处理上传文件。然而,在上传文件时,有时需要更改文件名以防止文件名冲突或为了更好的文件管理。在这篇文章中,我们将介绍如何在 PHP 中上传文件并更改文件名。
- HTML 表单
首先,我们需要在 HTML 表单中添加一个文件上传字段。在表单中添加 “enctype = “multipart/form-data” 属性,以便服务器可以处理文件上传。
“`html
“`
- PHP 代码
接下来,我们需要编写 PHP 代码来处理上传文件并更改文件名。首先,检查文件是否存在并且没有错误,然后将文件从临时目录移动到指定的目录,并为文件设置新名称。在本例中,我们将文件名更改为当前时间戳加上文件扩展名。
“`php
if(isset($FILES[‘file’])) {
$errors = array();
$filename = $FILES[‘file’][‘name’];
$filesize = $FILES[‘file’][‘size’];
$filetmp = $FILES[‘file’][‘tmpname’];
$filetype = $FILES[‘file’][‘type’];
// 检查文件扩展名
$fileext = strtolower(end(explode(‘.’,$FILES[‘file’][‘name’])));
$extensions = array(“jpeg”,”jpg”,”png”);
if(inarray($fileext,$extensions)=== false){
$errors[]=”文件扩展名不允许,请上传 JPEG 或 PNG 文件。”;
}
// 检查文件大小(最大为 2MB)
if($file_size > 2097152){
$errors[]=’文件大小不能超过 2MB’;
}
// 如果没有错误,则处理上传文件
if(empty($errors)){
$newfilename = time() . ‘.’ . $fileext;
moveuploadedfile($filetmp,”uploads/”.$newfilename);
echo “文件已上传并更改名称为 “.$newfilename;
}else{
print_r($errors);
}
}
“`
- 文件保存位置
在上面的代码中,“uploads”是要保存上传文件的目录。请确保该目录存在并具有写入权限。否则,文件上传将失败并引发错误。
可以使用以下 PHP 代码检查目录是否存在并创建它(如果不存在):
“`php
$directory = “uploads/”;
if(!is_dir($directory)){
mkdir($directory, 0777, true);
}
“`
- 总结
在 PHP 中,上传文件并更改文件名是一项相当简单的任务。只需在 HTML 表单中添加文件上传字段,处理 PHP 代码并指定要保存文件的目录,就可以完成该任务。在文件上传和更改名称之前,始终记住检查文件大小,类型和扩展名,以确保上传的文件符合预期。