如何在MYSQL中存储PDF文件的文件引用以在php中检索

时间:2019-07-14 15:48:59

标签: php mysql pdf download uploading

我试图在MySQL中存储对PDF文件的引用,然后将一些文件加载​​到网页上。当我单击文件名时,我希望加载该文件。如何在MySQL中存储引用并通过PHP访问它?

我读过很多文章,建议不要将文件直接添加到MySQL并仅存储参考,但是找不到指导或指导以仅在MySQL和Windows中仅存储文件的参考/路径的教程或说明。通过PHP访问。

so

上面的代码仅直接打开直接存储在服务器上的文件。我不确定如何在MySQL中存储路径。然后在我的网页上,我想单击一个按钮来检索文件。 (我要存储多个文件。)在此先感谢您,但是我根本找不到如何执行此操作以及它对于我的项目不可或缺的内容。

1 个答案:

答案 0 :(得分:0)

尽管问题不是很清楚,但我会假设一些假设来解决这个问题。

如您所知,我强烈不建议将文件作为字符串存储在数据库中。

您有几种选择-

使用像Amazon S3这样的云提供商将pdf文件推送到存储桶,该存储桶返回引用该文件的URL。然后,您将该URL存储到表中作为参考,因为API会返回上载文件的链接。当您需要在请求时呈现文件时,只需在数据库中通过引用定位文件,然后像当前一样呈现它即可。这将需要更多的工作,因为您需要设置云提供商帐户,配置存储桶(存储)并将SDK添加到项目中才能与存储引擎进行通信。

另一种方法是您在Web主机中指定一个可通过站点URL访问的文件夹。例如-https://yourdomain.com/files/9d6fdb34-f92f-4078-9ab3-e5ada4522f2e.pdf

文件(9d6fdb34-f92f-4078-9ab3-e5ada4522f2e.pdf)物理存储在您的云主机本地文件夹中,该文件夹可以位于/ var / files之类的任何位置,但是当用户输入{{3}时,您的网络服务器会指向此目录}和对该文件的引用可以与其他元数据一起存储在MySQL中,例如您的案例-

file_guid :  9d6fdb34-f92f-4078-9ab3-e5ada4522f2e
file_name : BinarySearch
file_extension: pdf
user_id : 123 (if applicable)

在用户界面中,您的用户看到(BinarySearch.pdf)文本,该文本链接到https://yourdomain.com/files/

如果用户正在上传文件,则将文件存储到/ var / files /时,请始终将文件名重写为唯一的uuid,但要按照我上面的指定将他们上传的文件名存储在数据库中。

我希望这会有所帮助。

祝你好运。