php上传文件到数据库
时间: 2023-09-09 16:13:02 浏览: 98
在 PHP 中,可以通过以下步骤将文件上传到数据库:
1. 创建一个包含文件上传表单的 HTML 页面。
```
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" value="Upload File" name="submit">
</form>
```
2. 在上传文件的 PHP 页面中,连接到数据库并将文件存储为二进制数据。
```
// 连接到数据库
$conn = mysqli_connect($servername, $username, $password, $dbname);
// 检查文件是否上传成功
if (isset($_POST["submit"])) {
$fileName = $_FILES["fileToUpload"]["name"];
$fileTmp = $_FILES["fileToUpload"]["tmp_name"];
$fileType = $_FILES["fileToUpload"]["type"];
// 将文件读取为二进制数据
$fileData = file_get_contents($fileTmp);
// 将文件数据插入到数据库中
$sql = "INSERT INTO files (name, type, data) VALUES ('$fileName', '$fileType', '$fileData')";
mysqli_query($conn, $sql);
}
// 关闭数据库连接
mysqli_close($conn);
```
3. 创建一个 PHP 页面,从数据库中获取文件并将其显示在浏览器上。
```
// 连接到数据库
$conn = mysqli_connect($servername, $username, $password, $dbname);
// 从数据库中获取文件数据
$sql = "SELECT name, type, data FROM files WHERE id='1'";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($result);
// 设置响应头以显示文件
header("Content-type: ".$row["type"]);
header("Content-Disposition: attachment; filename=".$row["name"]);
// 输出文件数据
echo $row["data"];
// 关闭数据库连接
mysqli_close($conn);
```
请注意,将文件存储为二进制数据可能会导致数据库变得庞大,因此此方法不适用于大型文件。在这种情况下,可以将文件存储在服务器上并将文件路径存储在数据库中。
阅读全文