将文件名保存为数据库

时间:2018-06-03 12:45:05

标签: php mysql sql phpmyadmin

虽然我将文件(type =" file")发送到数据库(PHPmyAdmin),而不是使用文件名保存,而是保存为BLOB,如下图所示。

enter image description here

我在这里发现了类似的问题Saving Files as blob in database ajax php pdo ,但对我没有帮助。我的php代码如下所示,用于将文件发送到数据库。

       $info = pathinfo($_FILES['file']['name']);
       $ext = $info['extension']; // get the extension of the file
       $newname = $get.".".$ext;  //$newname='newfilename.'.$ext     
       $target ="folder/".$newname;
       $doc= move_uploaded_file( $_FILES['file']['tmp_name'], $target);         
       $sql="INSERT INTO apply(mobile,doc,position) 
             VALUES (' $mobile','$newname',' $position')";  
       $query=mysqli_query($conn, $sql);

文件正在使用正确的必需名称发送到目标文件夹(命名文件夹),但为什么我在数据库中没有获得相同的名称。我的代码出了什么问题?

提前致谢。

1 个答案:

答案 0 :(得分:1)

首先,由于关键的性能问题,您不应该直接将文件丢入数据库。

建议的方法是将文件存储在文件系统中,并将其路径存储在数据库中TEXTVarchar

现在回答您的问题:

  

虽然我将文件(类型="文件")发送到数据库(PHPmyAdmin),而不是使用文件名保存,而是保存为BLOB,如下图所示。

每个文件都由二进制文件组成,但顺序和格式不同。将其存储在数据库中实际上并不棘手。数据库将它们转换为字节数组/字节流,然后将这些字节格式数据存储到表中。

当触发fetch查询时,它会返回确切的字节流作为响应。在应用程序级别,这些字节被各自的编码技术视为文件。

值得一读this post以及接受答案中的后续链接。