Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在web服务器上存储和检索图像的最佳方法是什么?_Php_Sql_Image - Fatal编程技术网

Php 在web服务器上存储和检索图像的最佳方法是什么?

Php 在web服务器上存储和检索图像的最佳方法是什么?,php,sql,image,Php,Sql,Image,我有一个严重依赖我的sql数据库的网站。我将产品信息存储在数据库中,并用php检索和格式化它。我想在等式中添加图像,但不知道从哪里开始。它们的分辨率很高,所以我认为不建议将它们存储在实际数据库中,但我不希望其他管理员花费数小时输入产品信息和图像。目前,管理员填写表单,验证信息是否正确,然后将信息存储并显示在网站上。说到图片,我能想到的最好办法就是将图片名称和位置添加到产品信息中,然后用php调用它,但我不想让管理员整天给照片命名,然后手动键入名称。任何想法都将不胜感激 就我个人而言,我建议将图像

我有一个严重依赖我的sql数据库的网站。我将产品信息存储在数据库中,并用php检索和格式化它。我想在等式中添加图像,但不知道从哪里开始。它们的分辨率很高,所以我认为不建议将它们存储在实际数据库中,但我不希望其他管理员花费数小时输入产品信息和图像。目前,管理员填写表单,验证信息是否正确,然后将信息存储并显示在网站上。说到图片,我能想到的最好办法就是将图片名称和位置添加到产品信息中,然后用php调用它,但我不想让管理员整天给照片命名,然后手动键入名称。任何想法都将不胜感激

就我个人而言,我建议将图像存储在一个耐用且可扩展的存储设备中,例如,这样可以为您减轻很多负担,并使您能够以几乎任何规模(无论大小)通过经济高效的CDN托管图像

您不必担心人工命名图像文件,因为它们可以通过代码随机分配唯一的名称。例如,您可以使用图像文件的md5总和来唯一地标识图像,并且只将它们的S3 bucket和对象id存储在数据库中,以便轻松地从web检索它们,即使您以后决定更改某些信息也是如此


此外,由于您声明要将图像与数据库中的特定产品相关联,因此可能不需要全局标识唯一的图像数据。您可以将其限制在关联的产品上,这可能很好。

这样做的最佳方法是将URL路径和名称保存在网站上,比如存储桶,更好的方法是将其保存在您自己的服务器上,而不是保存在您自己的服务器上。数据库具有存储图像的功能,但我不建议您使用它

工作流程是创建一个表单,将图像上载到服务器,然后在项目\u images表中插入名称、扩展名和URL

检索图像时,比如在产品目录中,只需从数据库中查询url,并使用PHP向用户显示,将url放置在每个img标记的src属性中

<img alt="" src="<?php echo img_url[];?>" width="" class="">

最好的方法可能因人而异,但我建议将图像的确切位置存储在db中。然后回显src中的位置。您是正确的-将图像存储在数据库中,虽然可能,但不建议这样做-尤其是当图像是高分辨率的时候。您可以很容易地编写一个脚本来扫描目录并将每个图像添加到数据库中。你也可以向管理员展示一个可视图像选择器,让他们点击一个图像,将该图像/路径添加到表单中。你说你不想让他们花一整天的时间来命名这些照片,但是这些图像怎么可能得到一个名称呢?我现在选择的方法是将url保存到数据库中。我想知道是否最好为每个链接设置多个列,或者是否有一种方法可以将它们全部存储在一个列中,并分别进行回显?
<FORM id="" method="post" action="" enctype="multipart/form-data">
$image_name=$item_category.$item_id.$extension