PHP文件上传处理01_$_FILES对象
上传文件时html代码中需要进行如下设置:
- 在html表单中需要设置enctype="multipart/form-data"
- 只能post方式 PHP接收文件可以通过$_FILES来获取
首先html代码
<form action="03.fileUpdate.php" method="post" enctype="multipart/form-data">
<label for="">照片:
<input type="file" multiple="" name="picture">
</label>
<input type="submit" value="提交"/>
</form>
php代码这部分代码测试$_FILES文件的具体内容
<?php
sleep(5);// 让服务器休息一会
print_r($_FILES);
?>
运行结果如下
运行情况说明:
- 点击提交后,服务器没有立即出现反应,而是休息了一会sleep(5)
- 在wamp/tmp目录下面出现了一个.tmp文件
- .tmp文件一会就被自动删除了
- 服务器返回的内容中,有文件的名字[name] => computer.png,以及上传文件保存的位置D:\wamp\tmp\php3D70.tmp
PHP文件上传处理02_文件保存
刚刚演示了$_FILES对象的作用,以及PHP接受上传文件时,会先保存在一个临时目录下,那么接下来我们就演示如何将临时目录下面的文件保存起来
HTML部分的代码不做改变
下面是打印出的file相关
Array ( [picture] => Array (
[name] => computer.png
[type] => image/png
[tmp_name] => D:\wamp\tmp\php8913.tmp
[error] => 0 [size] => 5212 )
)
php代码如下
其中我们需要通过picture(根据表单标签的name属性决定)获取临时文件名以及上传文件名
<?php
sleep(5);// 让服务器休息一会,方便我们查看上传的临时文件
// 第一个参数是 规定要移动的文件
// 第二个参数是 规定文件的新位置
move_uploaded_file($_FILES['picture']['tmp_name'], './upload/'.$_FILES['picture']['name']);
?>
move_uploaded_file ( string $filename , string $destination )
move_uploaded_file()函数是将上传文件储存到指定位置。如果成功,那么就会返回true,否则返回false。 参数 filename是上传文件的临时文件名,就是$S_FILES[tem_name];参数 destination 是上传后保存的新的路径和名称。
运行结果如下