如何将文件上传到数据库

时间:2016-03-01 20:39:13

标签: php mysql

我正在尝试创建一个upload.php,它只将PDF,DOC和DOCX上传到数据库(路径)和我服务器上的文件。现在我上传到该文件是有效的,但我真的不知道如何将链接(路径)上传到我的表行。

此外,我上传的文件必须能够通过点击详细信息页面上的按钮进行下载。

我的upload.php

<?php
$servername = "localhost";
$username = "root";
$password = "usbw";
$dbname = "persons";

// CREATE A CONNECTION WITH THE DATABASE
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} 

 if ($_FILES["cv"]["error"] > 0)
{
 echo "<font size = '5'><font color=\"#e31919\">Error: NO CHOSEN FILE <br />";
 echo"<p><font size = '5'><font color=\"#e31919\">INSERT TO DATABASE FAILED";
}
else
{
  move_uploaded_file($_FILES["cv"]["tmp_name"],"files/" . $_FILES["cv"]["name"]);
 echo"<font size = '5'><font color=\"#0CF44A\">SAVED<br>";

 $file="files/".$_FILES["cv"]["name"];
 $sql="INSERT INTO person (person_cv, path) VALUES ('','$file')";

 if (!mysql_query($sql))
 {
    die('Error: ' . mysql_error());
 }
 echo "<font size = '5'><font color=\"#0CF44A\">SAVED TO DATABASE";

}

mysql_close();

?>

数据库名称称为“人员”,其中有一个名为person的表。文件链接应保存到person_cv。我是PHP的新手,我正在尝试理解PHP,但是有很多方法可以做到这一点因为我感到困惑。

1 个答案:

答案 0 :(得分:1)

我也对数据库结构感到困惑,正如我所见。

我不知道您真正希望在数据库中保留哪些数据,但您需要遵循:

  • 包含基本数据的表(例如,名为people_id),例如,您将拥有该表
    • id
    • namesurname
    • cv_file_id
  • 包含文件信息的表格
    • file_id(值必须与cv_file_id中的值相同)
    • name(可能是上传前的文件名称,或者更改为更好的操作)
    • type(主要通过扩展名来定义,例如doc,docx,txt等)
  • 可能还有一些其他人的信息表,他们自己

在域名文件夹中,您将拥有一个,您将保留所有上传的cv文件。然后,您将根据需要更新数据库表 - 并上传这些文件。

这是最合理的方法。我会这样做。可能是有经验的人会以其他方式做到这一点。