PHP文件上传处理函数介绍及示例
PHP文件上传处理函数主要包括以下几个函数:
1. move_uploaded_file():
move_uploaded_file() 函数用于将上传的文件移动到新位置。它的语法是:move_uploaded_file($tmp_name, $destination)。其中$tmp_name 是服务器在接收到上传文件后,为临时存储位置生成的临时文件名称;$destination 是指要将文件移动到的新位置及新文件名。这个函数返回布尔值,表示文件移动是否成功。
示例代码:
if ($_FILES["file"]["error"] == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["file"]["tmp_name"];
$destination = "uploads/" . $_FILES["file"]["name"];
if (move_uploaded_file($tmp_name, $destination)) {
echo "文件上传成功";
} else {
echo "文件上传失败";
}
}
2. is_uploaded_file():
is_uploaded_file() 函数用于判断指定的文件是否是通过 HTTP POST 上传的。它的语法是:is_uploaded_file($filename)。其中$filename 是要检查的文件路径和名称。这个函数返回布尔值,表示文件是否是通过 HTTP POST 上传的。
示例代码:
$filename = $_FILES["file"]["tmp_name"];
if (is_uploaded_file($filename)) {
echo "文件是通过 HTTP POST 上传的";
} else {
echo "文件不是通过 HTTP POST 上传的";
}
3. $_FILES:
$_FILES 是一个全局变量,用于存储上传的文件信息。它是一个关联数组,包含以下键值对:
- $_FILES["file"]["name"]: 上传文件的原始名称。
- $_FILES["file"]["type"]: 上传文件的 MIME 类型。
- $_FILES["file"]["size"]: 上传文件的大小(字节)。
- $_FILES["file"]["tmp_name"]: 服务器上接收到的临时文件名称。
- $_FILES["file"]["error"]: 上传文件时发生的错误代码。
示例代码:
$filename = $_FILES["file"]["name"]; $filetype = $_FILES["file"]["type"]; $filesize = $_FILES["file"]["size"]; $tmp_name = $_FILES["file"]["tmp_name"]; $error = $_FILES["file"]["error"];
除了这些基本的文件上传处理函数,还可以使用其他一些函数来处理上传的文件,如:
4. move_uploaded_files():
move_uploaded_files() 可以一次性同时移动多个上传文件。它的语法是:move_uploaded_files($tmp_name, $destination)。其中$tmp_name 是上传文件时临时存储位置生成的临时文件名称数组;$destination 是要将文件移动到的新位置及新文件名数组。这个函数返回布尔值,表示文件移动是否成功。
示例代码:
if ($_FILES["file1"]["error"] == UPLOAD_ERR_OK && $_FILES["file2"]["error"] == UPLOAD_ERR_OK) {
$tmp_name = array($_FILES["file1"]["tmp_name"], $_FILES["file2"]["tmp_name"]);
$destination = array("uploads/" . $_FILES["file1"]["name"], "uploads/" . $_FILES["file2"]["name"]);
if (move_uploaded_files($tmp_name, $destination)) {
echo "文件上传成功";
} else {
echo "文件上传失败";
}
}
5. rename():
rename() 函数可以用于给上传的文件重命名。它的语法是:rename($oldname, $newname)。其中$oldname 是上传文件的原始名称;$newname 是要给文件重命名的新名称。这个函数返回布尔值,表示文件重命名是否成功。
示例代码:
$oldname = $_FILES["file"]["tmp_name"];
$newname = "uploads/newname.jpg";
if (rename($oldname, $newname)) {
echo "文件重命名成功";
} else {
echo "文件重命名失败";
}
通过使用上述的文件上传处理函数,可以方便地实现PHP文件上传功能,并对上传的文件进行相应的处理。
