wphp中上传文件并保存的时候,在html表单中需要设置enctype="multipart/form-data"
,并且只能post方式 PHP接收文件可以通过$_FILES
来获取。文件上传到服务器之后就会生成一个临时文件.tmp
。.tmp
文件一会就被自动删除。服务器返回的内容中,有文件的名字以及上传文件保存的位置。如果让文件长期存储,我们将其移动到其他的位置即可。
html代码如下:
<form action='xx.php' method='post' enctype='multipart/form-data'>
<input type='file' name='icon'>
<input type='submit'>
</form>
服务器端代码:
<?php
// 可以打印 $_FILES的所有信息
print_r($_FILES);
move_uploaded_file($_FILES['photo']['tmp_name'], './images/test.jpg');
?>
注意:
$_FILES
用法跟$_GET
,$_POST
类似,都是关系型数组。#_FILE['key']
:可以获取对应上传的文件,这里的key跟提交时的name相对应。#_FILE['key']['name']
可以获取上传的文件名。#_FILE['key']['tmp_name']
可以获取上传的文件保存的临时目录。
附录:move_uploaded_file
(移动文件)
move_uploaded_file参数:
参数1:移动的文件
参数2:目标路径
php默认有上传文件大小的限制
我们只需要更改php.ini
就可以修改基本配置
设置文件最大上传限制(值的大小可以根据需求修改)
file_uploads = On ; 是否允许上传文件 On/Off 默认是On upload_max_filesize = 32M ; 上传文件的最大限制 post_max_size = 32M ; 通过Post提交的最多数据
考虑网络传输快慢,这里修改一些参数
max_execution_time = 30000 ; 脚本最长的执行时间 单位为秒 max_input_time = 600 ; 接收提交的数据的时间限制 单位为秒 memory_limit = 1024M ; 最大的内存消耗