在数据库中将文件名保存为“blob”

qxsslcnc  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(424)

当我将文件(type=“file”)发送到数据库(phpmyadmin)时,它不是用文件名保存,而是保存为 BLOB 如下图所示。

我在数据库ajaxphp-pdo中发现了类似的问题,将文件保存为blob,但没有帮助我。我的 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);

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

yfwxisqw

yfwxisqw1#

首先,您不应该因为严重的性能问题而直接将文件存储到数据库中。
建议的方法是将文件存储在文件系统中,并将其路径存储在数据库中 TEXT 或者 Varchar .
现在来回答你的问题:
当我将文件(type=“file”)发送到数据库(phpmyadmin)时,它不是用文件名保存,而是保存为blob,如下图所示。
每个文件都由二进制文件组成,但顺序和格式不同。将其存储在数据库中实际上并不复杂。数据库将它们转换为字节数组/字节流,然后将这些字节格式的数据存储到表中。
当触发fetch查询时,它将返回响应中的确切字节流。在应用程序级别,这些字节通过各自的编码技术被视为文件。
值得一读这篇文章和随后的链接。

相关问题