《PHP 7从零基础到项目实战》练习,上传文件。
上传文件时需要配置php.ini中的几个参数
配置参数 | 说明 |
---|---|
file_uploads | 是否允许HTTP文件上传,默认为On |
upload_max_filesize | 上传文件的大小限制,默认为2M |
post_max_size | 表单POST给PHP时,所能接收的最大值,默认为8M |
upload_tmp_dir | 上传文件的临时存放目录 |
max_execution_time | php页面运行的最大时间值,默认为30s |
max_input_time | php脚本请求数据所用的时间,默认为60s |
memory_limit | 单个php脚本所能申请到的最大内存空间,默认为128M |
php.ini配置示例:
file_uploads = On
upload_tmp_dir = "D:\temp"
upload_max_filesize = 2M
post_max_size = 8M
max_execution_time = 600
max_input_time = 600
memory_limit = 128M
upload.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>上传文件</title>
</head>
<body>
<form enctype="multipart/form-data" action="file.php" method="post">
Send this file: <input name="userfile" type="file"/>
<input type="submit" value="Send File"/>
</form>
</body>
</html>
file.php:
<?php
$file = $_FILES['userfile'];
if($file['error'] == 0){
if(move_uploaded_file($file['tmp_name'],$file['name'])){
echo 'success';
}else{
echo 'failed';
}
}else{
echo 'error code'.$file['error'];
}
?>
将upload.html和file.php部署到Apache服务器,浏览器访问:
由下图可知,图片上传成功了,可是却是上传到了file.php和upload.html所在的同一目录下,设置的上传文件临时存储目录未生效?