使用php写一个文件上传接口
时间: 2024-09-12 21:02:05 浏览: 40
一个完整的php文件上传类实例讲解
在PHP中,编写一个文件上传接口通常涉及到处理HTTP请求、验证用户上传的文件以及存储文件到服务器。下面是一个简单的例子,展示如何创建一个基本的文件上传API:
```php
<?php
// 设置允许上传的文件类型和大小限制
$allowedTypes = ['image/jpeg', 'image/png'];
$maxSize = 5 * 1024 * 1024; // 5MB
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$targetDir = "uploads/";
$targetFile = $targetDir . basename($_FILES["fileToUpload"]["name"]);
// 检查是否已存在同名文件
if (file_exists($targetFile)) {
echo "文件已经存在";
exit();
}
// 验证文件类型和大小
$fileType = strtolower(pathinfo($targetFile,PATHINFO_EXTENSION));
if (!in_array($fileType, $allowedTypes) || $_FILES["fileToUpload"]["size"] > $maxSize) {
echo "错误:只接受.jpg和.png类型的图片,且大小不超过5MB";
exit();
}
// 尝试将文件移动到目标位置
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $targetFile)) {
echo "文件上传成功,位于 " . htmlspecialchars($targetFile);
} else {
echo "文件上传失败";
}
} else {
// 如果不是POST请求,返回上传表单
echo '<form action="" method="post" enctype="multipart/form-data">';
echo '<input type="file" name="fileToUpload" id="fileToUpload"><br>';
echo '<input type="submit" value="上传">';
echo '</form>';
}
?>
```
这个示例首先检查请求方法是否为POST,如果是,则接收并处理上传的文件。它会检查文件类型和大小,并尝试将其保存到指定的目录。如果一切正常,它将响应一个成功的消息;如果有错误,会给出相应的错误信息。
阅读全文