引言
一、PHP图片上传配置攻略
1. 开启文件上传功能
在php.ini
配置文件中,找到以下配置项并确保它们被设置为On
:
file_uploads = On
2. 设置临时目录
找到以下配置项并设置一个合适的临时目录:
upload_tmp_dir = "d:/work/wamp/tmp"
确保该目录存在且可写。
3. 设置上传文件大小
找到以下配置项并设置合适的文件大小:
upload_max_filesize = 20M
4. 设置POST最大大小
找到以下配置项并设置合适的POST请求大小:
post_max_size = 30M
5. 设置内存
找到以下配置项并设置合适的内存:
memory_limit = 128M
6. 设置最大执行时间和最大输入时间
找到以下配置项并设置合适的执行时间和输入时间:
max_execution_time = 30
max_input_time = 30
二、HTML表单配置
1. 设置表单编码
在<form>
标签中设置enctype
属性为multipart/form-data
:
<form action="upload.php" enctype="multipart/form-data" method="post">
2. 添加文件输入框
使用<input>
标签添加文件输入框:
<input type="file" name="file" />
3. 添加提交按钮
使用<input>
标签添加提交按钮:
<input type="submit" value="上传" />
三、PHP上传处理
1. 检查文件上传状态
使用$_FILES
数组检查文件上传状态:
if ($_FILES['file']['error'] == 0) {
// 文件上传成功
} else {
// 文件上传失败
}
2. 检查文件大小
使用$_FILES['file']['size']
检查文件大小:
if ($_FILES['file']['size'] > 20 * 1024 * 1024) {
// 文件大小超过
}
3. 检查文件类型
使用getimagesize()
函数检查文件类型:
if (!getimagesize($_FILES['file']['tmp_name'])) {
// 文件类型不正确
}
4. 移动文件到指定目录
使用move_uploaded_file()
函数将文件移动到指定目录:
move_uploaded_file($_FILES['file']['tmp_name'], "uploads/" . $_FILES['file']['name']);
四、常见问题解答
1. 文件上传失败
可能原因:
php.ini
中文件上传功能未开启。- 临时目录设置错误或不可写。
- 文件大小超过。
- POST请求大小超过。
2. 文件类型不正确
可能原因:
- 没有使用
getimagesize()
函数检查文件类型。 - 文件扩展名与实际内容不符。
3. 文件无法移动
可能原因:
- 指定目录不存在或不可写。
- 没有使用
move_uploaded_file()
函数。