php上传文件存进数据库中 (如何将文件上传到PHP并存入数据库中?)
当我们在开发网站时,经常需要向服务器上传文件,如图片、视频、文档等。本文将介绍使用PHP将文件上传到服务器,然后将上传的文件存储到数据库中。
首先,我们需要创建一个HTML表单,让用户可以选择要上传的文件。以下是表单的基本结构:
“`html
“`
这个表单有三个重要的属性:
action
:表单提交的地址,也就是上传文件的处理程序。method
:表单提交的方式,可以是 GET 或 POST,但在文件上传时必须是 POST。enctype
:表单数据的编码方式,如果是文件上传,必须设置为multipart/form-data
。
现在,我们需要写一个PHP脚本来处理文件的上传,这个文件将接收表单的数据并将上传的文件存储到服务器上,并将文件信息存储到数据库中。以下是一个简单的PHP脚本:
“`php
<?php
// 连接数据库
$conn = mysqli_connect("localhost", "user", "password", "database");
// 检查连接
if (!$conn) {
die(“Connection failed: ” . mysqliconnecterror());
}
// 判断是否有文件上传
if (isset($FILES[“file”][“name”])) {
$filename = $FILES[“file”][“name”];
$filetmpname = $FILES[“file”][“tmpname”];
$filesize = $FILES[“file”][“size”];
$filetype = $FILES[“file”][“type”];
$filedata = filegetcontents($FILES[“file”][“tmpname”]);
// 插入数据库
$sql = "INSERT INTO files (filename, filetype, filesize, filedata) VALUES ('$filename', '$filetype', '$filesize', '$filedata')";
if (mysqli_query($conn, $sql)) {
echo "File uploaded and stored in database.";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
// 存储文件到服务器
move_uploaded_file($filetmpname, "uploads/" . $filename);
} else {
echo “No file uploaded.”;
}
// 关闭连接
mysqli_close($conn);
?>
“`
上述代码中,我们首先连接到MySQL数据库。然后,我们使用 isset()
函数判断是否有文件上传。如果有,我们使用 $_FILES
超级全局数组获取上传的文件相关信息,并将文件内容存储为二进制数据。接下来,我们将文件信息插入到 files
表中。最后,我们使用 move_uploaded_file()
函数将上传的文件存储到服务器的 uploads
文件夹中。
现在,我们可以测试上传并存储文件的功能了。运行上述代码,我们可以打开上传文件的页面并选择要上传的文件。文件一旦上传成功,会在服务器的 uploads
文件夹中创建一个新的文件,同时也会将文件信息存储到数据库中。
总结一下,将文件上传到服务器并将其存储到数据库中在Web应用程序中非常有用。通过本文的介绍,希望能帮助你了解如何使用PHP处理文件上传和存储到数据库的功能。