文件上传到mysql php (有没有办法把文件上传到mysql和php?)

在Web开发中,经常需要上传文件到服务器。很多开发人员都知道,文件通常存储在文件系统中。但是,有些情况下,我们可能希望将文件存储在数据库中,比如MySQL。在这种情况下,我们可以使用PHP来实现文件上传到MySQL。

首先,我们需要创建一个MySQL表来存储上传的文件。表的结构如下:


CREATE TABLE `uploads` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`type` varchar(255) NOT NULL,
`size` int(11) NOT NULL,
`data` mediumblob NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

在表中,我们定义了五个列:id、name、type、size和data。其中id是主键,name是文件名,type是文件类型,size是文件大小,data是文件内容。

接下来,我们可以编写一个PHP脚本来实现文件上传。代码如下:

“`
<?php
if(isset($FILES[‘file’])) {
$name = $
FILES[‘file’][‘name’];
$type = $FILES[‘file’][‘type’];
$size = $
FILES[‘file’][‘size’];
$data = filegetcontents($FILES[‘file’][‘tmpname’]);

$conn = new mysqli(‘localhost’, ‘username’, ‘password’, ‘database’);
if ($conn->connecterror) {
die(“Connection failed: ” . $conn->connect
error);
}

$stmt = $conn->prepare(“INSERT INTO uploads(name, type, size, data) VALUES (?, ?, ?, ?)”);
$stmt->bind_param(“ssis”, $name, $type, $size, $data);
$stmt->execute();
$stmt->close();

$conn->close();

echo “Upload successful!”;
}
?>
“`

在脚本中,我们使用$FILES全局变量来获取上传的文件。然后,使用fileget_contents函数来将文件内容读取到一个变量中。接着,我们使用mysqli扩展来与MySQL数据库建立连接,并将文件内容插入到uploads表中。

最后,我们可以在Web页面上添加一个表单,让用户可以选择文件并上传到MySQL数据库。HTML代码如下:

“`

“`

在表单中,我们使用enctype属性来指定表单数据编码类型为multipart/form-data。然后,使用input元素的type属性为file,让用户可以选择文件。最后,使用input元素的type属性为submit,让用户可以提交表单。

综上所述,使用PHP将文件上传到MySQL数据库是可行的。需要注意的是,将文件存储在数据库中可能会影响性能,因此应该根据实际情况进行选择。

如有侵犯您的权益请邮件发送:rainpro@foxmail.com,站长看到会第一时间处理
客栈猫 » 文件上传到mysql php (有没有办法把文件上传到mysql和php?)

提供最优质的资源集合

立即查看 了解详情