php+mysql文件上传,使用PHP将文件上传到MySql DB
时间: 2023-09-17 09:09:53 浏览: 51
实际上,通常情况下,我们并不建议将文件直接存储在 MySQL 数据库中,而是建议将文件存储在服务器的文件系统中,然后在 MySQL 数据库中保存文件的路径。这种方法可以提高文件存储和检索的效率,并且还可以使数据库更加轻巧。下面是一个 PHP 将文件上传到服务器并将文件路径保存到 MySQL 数据库中的示例:
1. 创建一个表用于存储文件信息
```sql
CREATE TABLE `files` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`filename` varchar(255) NOT NULL,
`filepath` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
```
2. 创建一个上传文件的 HTML 表单
```html
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="上传">
</form>
```
3. 创建 PHP 文件来处理上传操作
```php
<?php
// 连接数据库
$conn = mysqli_connect("localhost", "username", "password", "database");
// 检查连接是否成功
if (!$conn) {
die("连接失败: " . mysqli_connect_error());
}
// 处理上传操作
if (isset($_FILES["file"])) {
$file = $_FILES["file"];
// 获取上传文件的相关信息
$filename = $file["name"];
$filepath = "uploads/" . $filename;
// 将文件移动到服务器上的指定目录
move_uploaded_file($file["tmp_name"], $filepath);
// 将文件路径保存到数据库中
$sql = "INSERT INTO files (filename, filepath) VALUES ('$filename', '$filepath')";
mysqli_query($conn, $sql);
}
?>
```
在这个示例中,我们使用了 PHP 的 `move_uploaded_file` 函数将上传的文件移动到服务器上的 `uploads` 目录中,并将文件路径保存到 MySQL 数据库中。请注意,为了使文件上传正常工作,您需要确保服务器上的 `uploads` 目录存在,并且具有适当的权限。