上传文件函数——move_uploaded_file等使用指南
上传文件是Web开发中常见的功能, PHP提供了一些函数来处理文件上传,其中最常用的是move_uploaded_file函数。本文将为您提供一个move_uploaded_file函数的使用指南,以便您能够顺利处理文件上传。
move_uploaded_file函数用于将上传的文件从临时位置移动到目标位置。下面是move_uploaded_file函数的语法:
bool move_uploaded_file ( string $filename , string $destination )
其中,$filename是上传文件的临时位置,可以通过$_FILES['file']['tmp_name']来获取;$destination是目标位置,即将文件移动到的位置。
下面是一个使用move_uploaded_file函数的例子:
if ($_FILES['file']['error'] === UPLOAD_ERR_OK) {
$tmpFile = $_FILES['file']['tmp_name'];
$destination = 'uploads/' . $_FILES['file']['name'];
if (move_uploaded_file($tmpFile, $destination)) {
echo '文件上传成功!';
} else {
echo '文件上传失败!';
}
} else {
echo '文件上传出错!';
}
上述例子中,首先判断$_FILES['file']['error']是否为UPLOAD_ERR_OK,这是判断文件上传是否成功的条件。然后,将临时文件的位置保存在$tmpFile中,并将目标位置保存在$destination中。最后,使用move_uploaded_file函数将文件从临时位置移动到目标位置。
需要注意的是,move_uploaded_file函数只能移动已经上传的文件,而且只能在上传文件时使用,否则会返回false。如果需要移动非上传文件,可以使用rename函数。
除了move_uploaded_file函数外,PHP还提供了其他一些与文件上传相关的函数:
- is_uploaded_file函数用于判断文件是否是通过HTTP POST上传的。语法为:
bool is_uploaded_file ( string $filename )
示例代码:
if (is_uploaded_file($_FILES['file']['tmp_name'])) {
echo '是通过HTTP POST上传的文件!';
} else {
echo '不是通过HTTP POST上传的文件!';
}
- $_FILES['file']['error']变量用于获取文件上传出错时的错误码。以下是错误码的取值和对应的含义:
- UPLOAD_ERR_OK:值为0,表示上传成功
- UPLOAD_ERR_INI_SIZE:值为1,表示上传的文件超过了php.ini中upload_max_filesize指定的大小限制
- UPLOAD_ERR_FORM_SIZE:值为2,表示上传的文件超过了HTML表单中MAX_FILE_SIZE指定的大小限制
- UPLOAD_ERR_PARTIAL:值为3,表示只有部分文件被上传
- UPLOAD_ERR_NO_FILE:值为4,表示没有文件被上传
- UPLOAD_ERR_NO_TMP_DIR:值为6,表示找不到临时文件夹
- UPLOAD_ERR_CANT_WRITE:值为7,表示文件写入失败
- UPLOAD_ERR_EXTENSION:值为8,表示文件上传被扩展停止
示例代码:
if ($_FILES['file']['error'] === UPLOAD_ERR_OK) {
echo '文件上传成功!';
} else {
echo '文件上传出错,错误码:' . $_FILES['file']['error'];
}
- $_FILES['file']['size']变量用于获取上传文件的大小(字节数)。示例代码:
echo '文件大小为:' . $_FILES['file']['size'] . '字节';
上述是move_uploaded_file函数及与文件上传相关的一些函数的使用指南,希望能对您处理文件上传时有所帮助。在编写文件上传代码时,还需注意安全性,比如对文件类型进行验证等,以防止恶意文件上传。
