php获取文件后传到数据库 (如何将PHP获取的文件传输到数据库?)
在Web开发过程中,文件上传是一个非常常见的需求。而将上传的文件保存到数据库中也是很常见的需求。本文将介绍如何使用PHP获取文件并将其传输到数据库中。
首先,我们需要一个包含文件上传表单的HTML文件。在该文件中,我们需要创建一个提交按钮和一个type为”file”的表单元素,用于选择要上传的文件。
“`html
“`
接下来,我们需要使用PHP编写一个处理上传的脚本。该脚本将从上传表单中获取文件,然后将文件数据插入到数据库中。以下是实现这个过程的步骤:
- 获取上传的文件:首先,我们需要使用$FILES数组来获取上传的文件。$FILES数组是PHP内置的全局变量,用于存储上传的文件信息。
php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
- 将文件插入到数据库中:接下来,我们需要将文件插入到数据库中。根据不同的情况,我们可以使用不同的方法插入文件数据。例如,如果我们需要将文件保存为BLOB类型,可以使用以下代码:
“`php
$fp = fopen($FILES[‘fileToUpload’][‘tmpname’], ‘r’);
$data = fread($fp, filesize($FILES[‘fileToUpload’][‘tmpname’]));
$data = addslashes($data);
fclose($fp);
$query = “INSERT INTO files (name, size, type, data) VALUES (‘$name’, ‘$size’, ‘$type’, ‘$data’)”;
mysqli_query($conn, $query);
“`
- 完整的上传处理脚本:下面是一个完整的上传处理脚本,其中包括从表单中获取文件、保存文件到服务器和将文件数据插入到数据库的完整代码。
“`php
<?php
$servername = “localhost”;
$username = “root”;
$password = “”;
$dbname = “myDB”;
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检测连接
if ($conn->connecterror) {
die(“连接失败: ” . $conn->connecterror);
}
// 获取上传的文件
$name = $FILES[‘fileToUpload’][‘name’];
$size = $FILES[‘fileToUpload’][‘size’];
$type = $_FILES[‘fileToUpload’][‘type’];
$tmpname = $FILES[‘fileToUpload’][‘tmpname’];
$fp = fopen($tmpname, ‘r’);
$content = fread($fp, filesize($tmp_name));
$content = addslashes($content);
fclose($fp);
// 将文件插入到数据库中
$query = “INSERT INTO files (name, size, type, data) VALUES (‘$name’, ‘$size’, ‘$type’, ‘$content’)”;
mysqli_query($conn, $query);
echo “文件已上传!”;
?>
“`
现在,我们已经知道了如何使用PHP获取文件并将其传输到数据库中。通过使用上述代码,您可以轻松地实现从HTML表单中上传文件并将其保存到数据库中。