php $_files怎么用

1. $_FILES是什么?

$_FILES常用于上传文件时处理上传的文件,他是PHP预定义全局变量,用来处理表单以multipart/form-data格式传输的文件数据。

1.1 上传文件的表单

在处理上传文件时,首先需要在表单中添加enctype属性,来声明表单采用的编码类型。如下:

<form action="upload.php" method="post" enctype="multipart/form-data">

<input type="file" name="myfile">

<input type="submit" value="上传">

</form>

其中,enctype="multipart/form-data"用于指定表单数据以二进制流的格式进行传输,因为文件不是文本类型的,需要采用二进制方式上传。而input元素的文件上传控件是用来选择上传文件的。

1.2 $_FILES的属性

在处理上传文件时,$_FILES可以通过以下属性来获取上传文件的相关信息:

$_FILES['name']:上传文件的原始名称

$_FILES['tmp_name']:上传的文件的临时文件名,用于在服务器端保存文件

$_FILES['type']:上传文件的MIME类型(如image/jpeg)

$_FILES['size']:上传文件的大小(字节)

$_FILES['error']:上传文件的错误代码。0表示文件上传成功,其他值则上传失败

2. PHP 处理上传文件的示例

以下是一个非常简单的接收并处理上传文件的示例,代码中使用了move_uploaded_file函数来完成将文件从临时目录中移动到指定的目录和重命名文件。具体来说,他先判断了上传文件有没有错误,然后再将上传的文件存储到服务器上的指定位置。代码如下:

<?php

$uploaddir = '/var/www/uploads/';

$uploadfile = $uploaddir . basename($_FILES['myfile']['name']);

if ($_FILES['myfile']['error'] == UPLOAD_ERR_OK) {

if (!move_uploaded_file($_FILES['myfile']['tmp_name'], $uploadfile)) {

echo '文件上传失败!';

}

} else {

echo '上传文件发生错误:';

echo $_FILES['myfile']['error'];

}

?>

3. 总结

通过使用PHP的$_FILES全局变量,我们可以轻松地接受上传的文件并处理他们。上传文件时需要设置表单的enctype属性为multipart/form-data,然后用input type="file"元素获取上传文件,最后通过$_FILES数组处理上传文件。

后端开发标签