html代码部分:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<form method="post" action="files-post.php" enctype="multipart/form-data">
<input type="file" name="files">
<input type="submit" >
</form>
</body>
</html>
这里作重要注意在form表单中提交文件时,需要在form表单中添加enctype属性
enctype的属性值有:
属性值 | 作用 |
---|---|
application/x-www-form-urlencoded(默认的) | 在发送前编码所有字符(默认) $1600 |
multipart/form-data | $12不对字符编码。在使用包含文件上传控件的表单时,必须使用该值 |
text/plain | 空格转换为 “+” 加号,但不对特殊字符编码。 |
php代码部分:
<?php
header('content-type:text/html;charset=utf-8');
print_r($_FILES);
sleep(5);
move_uploaded_file($_FILES["files"]["tmp_name"],'./img/'.$_FILES["files"]["name"])
?>
*在不设置move_uploaded_file方法时,PHP页面返回的是: / Array (
[files] => Array (
[name] => weather.jpg
[type] => image/jpeg
[tmp_name] => C:\xampp\tmp\phpA529.tmp
[error] => 0
[size] => 34984 )
)*/
在不设置文件转移方法 move_uploaded_file(“移动的文件”,“文件移动的位置”)的时候,上传的文件在服务器上是没有的。因为我们所上传的文件都还是临时文件,在PHP代码执行完以后,临时文件将被销毁。设置了文件转移的方法,就可以吧文件转移到我们想要的地方。
观看是否完成上传的步骤
如若想暂时看我们的文件是否成功的完成上传的步骤,可以让PHP的代码执行的速度变慢一点,“睡一会”,用到sleep(秒数)方法,让PHP的代码没有那么快执行完,文件就不会那么快被销毁,就可以观察文件是否完成了上传。
PHP页面返回的是:
/* Array (
[files] => Array (
[name] => weather.jpg
[type] => image/jpeg
[tmp_name] => C:\xampp\tmp\phpA529.tmp
[error] => 0
[size] => 34984 )
)*/
在设置转移放的的时候:
move_uploaded_file($_FILES["files"]["tmp_name"],'./img/'.$_FILES["files"]["name"])
后面设置转移的地方,需要给转移的文件去一个名字,可以直接用浏览器返回的files数组中的子对象中的名字