我是php / mysql的新手。我正在尝试通过URL(图像位置)将图像存储在我的数据库中,此时我的php代码将图像存储在名为upload的目录中的文件夹中。这是不安全的,所以我想把网址放在数据库中。我的代码基于此IMAGEUPLOAD-WEBSITE这是我的代码生成的网址示例:
http://www.example.com/imageupload/uploads/medium/uniqueimagename.jpg
答案 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而不是抽出的文件名,则可以缩短它。