当我将文件(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);
该文件正在以正确的必需名称发送到目标文件夹(命名文件夹),但为什么我在数据库中没有获得相同的名称。我的代码出了什么问题?
提前谢谢。
1条答案
按热度按时间yfwxisqw1#
首先,您不应该因为严重的性能问题而直接将文件存储到数据库中。
建议的方法是将文件存储在文件系统中,并将其路径存储在数据库中
TEXT
或者Varchar
.现在来回答你的问题:
当我将文件(type=“file”)发送到数据库(phpmyadmin)时,它不是用文件名保存,而是保存为blob,如下图所示。
每个文件都由二进制文件组成,但顺序和格式不同。将其存储在数据库中实际上并不复杂。数据库将它们转换为字节数组/字节流,然后将这些字节格式的数据存储到表中。
当触发fetch查询时,它将返回响应中的确切字节流。在应用程序级别,这些字节通过各自的编码技术被视为文件。
值得一读这篇文章和随后的链接。