虽然我将文件(type =" file")发送到数据库(PHPmyAdmin),而不是使用文件名保存,而是保存为BLOB
,如下图所示。
我在这里发现了类似的问题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);
文件正在使用正确的必需名称发送到目标文件夹(命名文件夹),但为什么我在数据库中没有获得相同的名称。我的代码出了什么问题?
提前致谢。
答案 0 :(得分:1)
首先,由于关键的性能问题,您不应该直接将文件丢入数据库。
建议的方法是将文件存储在文件系统中,并将其路径存储在数据库中TEXT
或Varchar
。
现在回答您的问题:
虽然我将文件(类型="文件")发送到数据库(PHPmyAdmin),而不是使用文件名保存,而是保存为BLOB,如下图所示。
每个文件都由二进制文件组成,但顺序和格式不同。将其存储在数据库中实际上并不棘手。数据库将它们转换为字节数组/字节流,然后将这些字节格式数据存储到表中。
当触发fetch查询时,它会返回确切的字节流作为响应。在应用程序级别,这些字节被各自的编码技术视为文件。
值得一读this post以及接受答案中的后续链接。