版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lihaoen666/article/details/80610357
php.ini相关参数
file_uploads
是否允许PHP上传文件,默认为ON
。
upload_tmp_dir
上传文件在处理之前,必须先上传到服务器上的某个临时文件夹;
此参数就是决定临时目录的路径,此目录需要有读写权限。
一般不需要改。
max_input_time
对POST/GET/PUT方式接收数据的时间限制,单位s。
max_execution_time
等待脚本执行完毕的最长时间,单位s。
如果需要上传大文件,此配置数值不能过小!
upload_max_filesize
允许上传文件的最大值,默认为2MB。
post_max_size
控制POST方式提交表单时,允许接收的最大数据量(MB);
由于POST数据除了文件,还有可能包含其他表单数据,此值应大于upload_max_filesize的值。
memory_limit
PHP的内存使用上限,避免脚本过量使用系统资源;
由于上传是内存处理得数据中除了POST数据外可能包含其他数据,此值应大于post_max_size的值。
相关错误
单文件上传
html代码
<form action="upload.php" method="post" enctype="multipart/form-data">
<input name="upload" type="file">
<input type="submit" value="上传文件">
</form>
php代码
1.我们通过$_FILES
获取上传的文件信息;
2.它返回的值是一个数组:
[upload] => [
[name] => 文件名
[type] => 文件类型
[tmp_name] => 临时路径 + 临时文件名
[error] => 错误类型
[size] => 大小
]
3.具体代码如下
// 1.获取错误码
$error = $_FILES['upload']['error'];
// 2.临时路径名 ↓这里的key和input的name一致
$tmp_name = $_FILES['upload']['tmp_name'];
// 3.目的路径名
$final_name = './upload/'.$_FILES['upload']['name'];
// 4.错误校验
if($error){
// 5.根据错误码,返回相应错误信息
switch($error){
case 1:
case 2:
echo "文件大小超出限制";
case 3:
echo "文件上传不完整";
case 4:
echo "未选中上传文件";
}
// 6.如果没有错误
}else{
// 7.移动上传的文件
$result = move_uploaded_file($tmp_name, $final_name);
// 8.输出信息
echo $result ? "上传成功" : "上传失败";
}