2

我是 php/mysql 的新手。我正在尝试通过 URL(图像位置)将图像存储在我的数据库中,此时我的 php 代码将图像存储在名为上传的目录中的文件夹中。这是不安全的,所以我想将 url 放入数据库中。我的代码基于此IMAGEUPLOAD-WEBSITE这是我的代码生成的 url 示例:

http://www.example.com/imageupload/uploads/medium/uniqueimagename.jpg

  1. 我将如何构建一个将存储 URL 的有效表?它应该与 Varchar 一起使用吗?
  2. 如何从我的数据库中检索此 url 并显示图像?php查询数据库中的文件名还是原始url?
4

3 回答 3

2

如果您打算存储任何图像 URL(而不仅仅是您自己的),那么您可以安全并VARCHAR(2000)根据 http 标准的 URL 长度限制将该字段设置为:

请参阅以下内容:
不同浏览器中 URL 的最大长度是多少?

至于检索和显示图像,您可以简单地从您的数据库中获取值(基于您设计的某些键)并将查询结果用作您的图像源 URL。

编辑:这是对这个主题的一个很好的探索:
Storing Images in DB - Yes or Nay?

于 2012-07-02T16:57:39.013 回答
2

1. How would i construct a valid table that will store URL's? Should it be with Varchar?

我不会将 URL 的完整路径存储到数据库中。所以,如果你有:

http://www.example.com/imageupload/uploads/medium/uniqueimagename.jpg

我只会存储:

size: 2 (medium)
name: uniqueimagename
ext: jpg

2. How can I retrieve this url from my database and display the image? php query of the filename in the database or original url?

只需从数据库中获取数据并将原始数据放入您的 html

于 2012-07-02T16:59:36.920 回答
1

您最好的选择是在成功上传后使用 PHP 重命名文件。将其命名为易于检索的名称(某种 ID)。将其存储在数据库中,或存储整个路径。使用 PHP 查询文件名或 ID,然后输出完整路径。将列设置为 VARCHAR(2000) 将适用于所有情况,但完全没有必要。如果您使用 ID 而不是抽出的文件名,则可以使其更短。

于 2012-07-02T16:59:54.973 回答