引言
选择保存路径
$uploadPath = "uploads/"; // 上传图片的基本路径
确保该路径存在于服务器上,并且服务器有足够的权限写入该路径。
图片验证
function validateImage($file) {
$validTypes = array('image/jpeg', 'image/png', 'image/gif');
if (in_array($file['type'], $validTypes)) {
return true;
} else {
return false;
}
}
文件存储
if (validateImage($_FILES['image'])) {
$filename = $_FILES['image']['name'];
$tempPath = $_FILES['image']['tmp_name'];
$newPath = $uploadPath . $filename;
if (move_uploaded_file($tempPath, $newPath)) {
echo "图片上传成功!";
} else {
echo "图片上传失败。";
}
} else {
echo "无效的图片格式。";
}
错误处理
在文件上传过程中,可能会遇到各种错误。以下是一个基本的错误处理示例:
if ($_FILES['image']['error'] === UPLOAD_ERR_OK) {
// 进行图片验证和存储操作
} else {
switch ($_FILES['image']['error']) {
case UPLOAD_ERR_INI_SIZE:
echo "文件过大,超过了配置文件中设置的大小。";
break;
case UPLOAD_ERR_FORM_SIZE:
echo "文件过大,超过了表单中设置的大小。";
break;
case UPLOAD_ERR_PARTIAL:
echo "文件只上传了一部分。";
break;
case UPLOAD_ERR_NO_FILE:
echo "没有文件被上传。";
break;
case UPLOAD_ERR_NO_TMP_DIR:
echo "缺少临时文件夹。";
break;
case UPLOAD_ERR_CANT_WRITE:
echo "文件写入失败。";
break;
case UPLOAD_ERR_EXTENSION:
echo "文件上传被扩展名中断。";
break;
default:
echo "未知的错误。";
break;
}
}
这段代码检查上传过程中是否有错误发生,并输出相应的错误信息。