php 上传文件并存进数据库 (如何在php中上传文件并将其存入数据库?)

在现代Web应用程序中,我们经常需要用户向服务器上传文件(如图像、音频、视频、文档等),PHP提供了一种简单又方便的方式来处理该过程。本篇文章将详细讲述PHP如何上传文件并将其存入数据库。

步骤1:在HTML文件中添加上传表单

第一步当然是在HTML文件中添加上传表单。可以使用如下的HTML表单代码:

“`

“`

以上表单用POST方法提交表单,enctype设置为multipart/form-data(标准的数据传输格式,用来传输文件)。注意文件上传应在form标签提前声明。这里的表单包括一个文件选择器和一个提交按钮,表单提交到upload.php页面。

步骤2:编写PHP文件上传代码

本步骤是上传文件并将文件路径添加到MySQL数据库中的关键步骤。下面是上传文件并将信息存入数据库的PHP代码:


$target_dir = "uploads/"; // 上传文件的目录,需要先建立
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); // 上传文件的完整路径
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION)); // 检测文件类型
// 检查文件是否已存在
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
$uploadOk = 0;
}
// 检查文件大小是否超过2MB
if ($_FILES["fileToUpload"]["size"] > 2000000) {
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
// 允许上传的文件类型
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
$uploadOk = 0;
}
// 在服务器成功保存文件 and 将文件路径添加至数据库
if ($uploadOk == 1) {
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
// 连接数据库
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
$conn = mysqli_connect($servername, $username, $password, $dbname);
// 添加文件路径至数据库
$sql = "INSERT INTO files (file_path) VALUES ('$target_file')";
if (mysqli_query($conn, $sql)) {
echo "The file ". htmlspecialchars( basename($_FILES["fileToUpload"]["name"])). " has been uploaded.";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
mysqli_close($conn); // 关闭数据库连接
} else {
echo "Sorry, there was an error uploading your file.";
}
}

以上代码首先定义了上传文件的目录$targetdir,此目录必须要在服务器上进行建立。然后定义了上传文件的完整路径$targetfile(由带有路径的文件名和$targetdir组合而成),其次定义了uploadOk变量并将其值设为1,这个变量将在后面的代码中判断上传文件的结果,如果值为0,文件上传失败,否则上传成功。接下来,将imageFileType定义为传递过来的文件的类型。变量$targetfile包括了文件的绝对路径以及完整的文件名。

在代码的下一段中,检查文件是否已经存在$target_file中,这是为了防止上传重复的文件。同时还检查了文件大小是否符合规定。我们在这里设置的大小是2MB。如果上传的文件超过了这个大小,那么文件上传失败,否则可以继续上传。$imageFiletype变量中定义的是我们希望允许上传的文件类型,如果上传的文件不是此类型,则上传失败。

如果上传成功,则将文件移动到$target_file中,如果移动成功,则将文件路径添加到数据库中。以上代码应确保连接了数据库,然后将文件路径添加到文件表中。

步骤3:MySQL数据库的设置

在上述代码中我们没有直接使用MySQL数据库,但是需要先对它进行配置。请注意,只有在web服务器上安装MySQL数据库才能执行以下步骤:

  1. 创建一个名为“myDB”的新数据库
  2. 创建名为“files”的新表
  3. 创建一个名为“id”的自增长的varchar类型的主键
  4. 在表中创建名为“file_path”的新列

以下是实现上述步骤的MySQL代码:

“`
CREATE DATABASE myDB;
USE myDB;

CREATE TABLE files (
id MEDIUMINT(8) UNSIGNED NOT NULL AUTOINCREMENT,
file
path VARCHAR(200) NOT NULL,
PRIMARY KEY (id)
)
“`

最后,记得将php文件保存为“upload.php”。

总结

本文展示了如何在PHP中上传文件并将其存储在MySQL数据库中。PHP的文件上传功能强大且易于使用,可以轻松地实现文件的上传,存储和管理。希望这篇文章可以解决您上传和管理文件的需求。

如有侵犯您的权益请邮件发送:rainpro@foxmail.com,站长看到会第一时间处理
客栈猫 » php 上传文件并存进数据库 (如何在php中上传文件并将其存入数据库?)

提供最优质的资源集合

立即查看 了解详情