php上传文件到数据库
时间: 2023-08-14 12:08:15 浏览: 86
将文件上传到数据库并不是一个常见的做法,一般情况下我们会将文件上传到服务器的磁盘中,然后在数据库中存储文件的路径。但是如果您非要将文件直接存储到数据库中,可以参考以下代码示例:
1. 创建数据库表
首先创建一个名为 `files` 的数据库表,用于存储文件信息。表结构如下:
```
CREATE TABLE `files` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`type` varchar(255) NOT NULL,
`data` longblob NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
```
2. 编写上传文件的 PHP 代码
以下是一个简单的上传文件的 PHP 代码示例:
```php
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$name = $_FILES['file']['name'];
$type = $_FILES['file']['type'];
$data = file_get_contents($_FILES['file']['tmp_name']);
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "dbname";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检测连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 插入数据
$stmt = $conn->prepare("INSERT INTO files (name, type, data) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $name, $type, $data);
$stmt->execute();
echo "文件上传成功!";
$stmt->close();
$conn->close();
}
?>
```
在上面的示例中,我们首先获取上传文件的名称、类型和内容,然后将其存储到数据库中。要注意的是,我们需要使用 `file_get_contents` 函数来获取文件内容,并且需要将获取到的内容作为二进制字符串存储到数据库的 `data` 字段中。
3. 编写上传文件的 HTML 表单
最后,我们需要编写一个上传文件的 HTML 表单,用于让用户选择文件并上传:
```html
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="上传文件">
</form>
```
在上面的 HTML 表单中,我们指定了上传文件的 PHP 文件为 `upload.php`,并且使用 `enctype="multipart/form-data"` 属性来指定表单数据类型为文件上传类型。
阅读全文