欢迎访问宙启技术站
智能推送

文件上传处理:PHP函数详解

发布时间:2023-06-03 15:13:16

文件上传是Web应用程序常见的功能之一,PHP为此提供了一组完整的函数来实现文件上传功能。本文将对PHP文件上传相关的函数进行详细介绍。

1. move_uploaded_file()

move_uploaded_file() 是 PHP 中上传文件时最常用的函数之一,它将上传的文件移动到指定的目录中。

move_uploaded_file()函数的语法如下:

bool move_uploaded_file ( string $filename , string $destination )

参数说明:

- $filename:必选参数,上传的文件,通常是通过 $_FILES['file']['tmp_name'] 获取。

- $destination:必选参数,文件移动到目标位置的路径和文件名。

示例代码:

if(move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $_FILES['file']['name'])){
    echo "文件上传成功!";
} else {
    echo "文件上传失败!";
}

2. is_uploaded_file()

is_uploaded_file()函数用于检查文件是否是通过 HTTP POST 上传的,如果是则返回 true,否则返回 false

is_uploaded_file()函数的语法如下:

bool is_uploaded_file ( string $filename )

参数说明:

- $filename:必选参数,要检查的文件名,通常是通过 $_FILES['file']['tmp_name'] 获取。

示例代码:

if(is_uploaded_file($_FILES['file']['tmp_name'])){
    echo "这是上传文件!";
} else {
    echo "这不是上传文件!";
}

3. file_exists()

file_exists()函数用于判断文件或目录是否存在,如果存在则返回 true,否则返回 false

file_exists()函数的语法如下:

bool file_exists ( string $filename )

参数说明:

- $filename:必选参数,要判断的文件或目录名称。

示例代码:

if(!file_exists('uploads/')){
    mkdir('uploads/');
}

4. getimagesize()

getimagesize()函数用于获取图像文件的大小和类型等相关信息。

getimagesize()函数的语法如下:

array getimagesize ( string $filename [, array &$imageinfo ] )

参数说明:

- $filename:必选参数,要获取信息的图像文件名。

- $imageinfo:可选参数,如果指定了此参数,则获取到的图像信息保存到此数组中。

返回值为包含图像宽度、高度、文件类型等信息的数组。

示例代码:

if($_FILES['file']['size'] > 0){
    $size = getimagesize($_FILES['file']['tmp_name']);
    echo "文件大小:".$_FILES['file']['size']."字节<br/>";
    echo "文件类型:".$size['mime']."<br/>";
    echo "宽度:".$size[0]."<br/>";
    echo "高度:".$size[1]."<br/>";
}

5. basename()

basename()函数用于从路径中获取文件名部分。

basename()函数的语法如下:

string basename ( string $path [, string $suffix ] )

参数说明:

- $path:必选参数,要获取文件名的路径。

- $suffix:可选参数,删除文件名的后缀。

示例代码:

echo basename($_FILES['file']['name']);

6. in_array()

in_array()函数用于在数组中搜索给定的值,如果找到则返回 true,否则返回 false

in_array()函数的语法如下:

bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )

参数说明:

- $needle:必选参数,要搜索的值。

- $haystack:必选参数,要搜索的数组。

- $strict:可选参数,指定搜索时是否进行类型比较,默认为 false,即不进行比较。

示例代码:

$allowed_ext = array('jpg','jpeg','gif','png');
$ext = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);
if(!in_array($ext, $allowed_ext)){
    echo "非法的文件类型!";
}

7. move_uploaded_file()

move_uploaded_file() 是 PHP 中上传文件时最常用的函数之一,它将上传的文件移动到指定的目录中。

move_uploaded_file()函数的语法如下:

bool move_uploaded_file ( string $filename , string $destination )

参数说明:

- $filename:必选参数,上传的文件,通常是通过 $_FILES['file']['tmp_name'] 获取。

- $destination:必选参数,文件移动到目标位置的路径和文件名。

示例代码:

if(move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $_FILES['file']['name'])){
    echo "文件上传成功!";
} else {
    echo "文件上传失败!";
}

8. unlink()

unlink()函数用于删除文件。

unlink()函数的语法如下:

bool unlink ( string $filename )

参数说明:

- $filename:必选参数,要删除的文件名。

示例代码:

if($_FILES['file']['size'] > 0){
    if(unlink($_FILES['file']['tmp_name'])){
        echo "文件删除成功!";
    } else {
        echo "文件删除失败!";
    }
}

总结

以上就是 PHP 文件上传相关的函数介绍,这些函数可以让我们轻松实现文件上传,检查文件类型,删除文件等操作。在实际项目开发中,我们应该注意文件上传安全问题,例如限制上传文件大小,只允许上传特定类型的文件等。