在数据库和检索过程中存储图像URL

时间:2012-07-02 16:52:36

标签: php mysql

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

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

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

3 个答案:

答案 0 :(得分:2)

如果您打算存储任何图片网址(而不仅仅是您自己的网址),那么您可以安全地将字段设置为VARCHAR(2000),具体取决于URL的http标准:

请参阅以下内容:
What is the maximum length of a URL in different browsers?

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

编辑:以下是对此主题的一个很好的探索:
Storing Images in DB - Yea or Nay?

答案 1 :(得分: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

答案 2 :(得分:1)

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