网站怎么去记录上传的图片url合适呢?

WBOY
풀어 주다: 2016-06-06 20:29:02
원래의
1557명이 탐색했습니다.

对于网站上传的图片,图片被上传到服务器中后,我们怎么去记录每个上传的图片文件的储存的地址呢?

比如:用户上传的图像,相册,商品图片等等,这些上传的图片我们怎么去记录其所在地址呢?

1:比如用户表有个 avatar 字段,用户上传图片后,然后把形如: http://www.thinkphp.cn/Uploads/da/2015-08-05/55c18ef67e249.jpg 这样的图片url存入 avatar 字段吗? 还是只存图片名称,或者拆分为三段 域名/路径/名称 存入三个字段?

2:还有用户相册,用户上传很多图片,这个怎么将图片的url保存在数据库中呢?

3:还有DZ论坛中一篇帖子内容中可能包含很多图片,这个怎么存呢,还是要单独建一个图片附件表,然后与帖子ID关联?

4:如果使用的是云存储呢,比如七牛和又拍云,使用它们的接口上传后,也是会给你返回一个图片url的吗?那么我们也像上面那样将返回的图片url保存在数据库中吗?

既然网站很多地方都使用了图片上传功能,每个被上传的图片在服务器中的位置都需要被记录下来,那我们何不专门创建一张表来保存所有上传的图片url呢?

我想到的最简单的这个表的设计:imgup(id, url)

就这样简单,所有上传的图片信息都在这里记录,比如原先用户表中的 avatar 保存的是图像的url,现在就可以保存这个对应id就可以了,这样就简单多了,商品图片,帖子内容图片,……,都同理。

但是我总觉得这样太简单了,过于不妥,这个表到底怎样设计最合理呢?需不需要加上图片的一些其它信息呢,比如在客户端被上传前的原始名称,图片大小,图片尺寸,图片创建时间,图片修改时间,图片EXIF信息,……等等。

没有看过DZ的代码,帖子中可以看到每个附件图片和其它文件,并能控制权限让用户下载,不知道它那个是怎么做的。

这个问题被延伸到网站【文件上传】上面就不局限于图片了,所有上传的文件信息都放在这个 记录上传文件信息 的表里面,那就方便多了,管理也方便,所以这个问题我想了很久,就是没有经验,所以先来请教下各位大神。

希望有经验的大神们不吝赐教,指点迷津,我当没齿难忘,谢谢!

回复内容:

对于网站上传的图片,图片被上传到服务器中后,我们怎么去记录每个上传的图片文件的储存的地址呢?

比如:用户上传的图像,相册,商品图片等等,这些上传的图片我们怎么去记录其所在地址呢?

1:比如用户表有个 avatar 字段,用户上传图片后,然后把形如: http://www.thinkphp.cn/Uploads/da/2015-08-05/55c18ef67e249.jpg 这样的图片url存入 avatar 字段吗? 还是只存图片名称,或者拆分为三段 域名/路径/名称 存入三个字段?

2:还有用户相册,用户上传很多图片,这个怎么将图片的url保存在数据库中呢?

3:还有DZ论坛中一篇帖子内容中可能包含很多图片,这个怎么存呢,还是要单独建一个图片附件表,然后与帖子ID关联?

4:如果使用的是云存储呢,比如七牛和又拍云,使用它们的接口上传后,也是会给你返回一个图片url的吗?那么我们也像上面那样将返回的图片url保存在数据库中吗?

既然网站很多地方都使用了图片上传功能,每个被上传的图片在服务器中的位置都需要被记录下来,那我们何不专门创建一张表来保存所有上传的图片url呢?

我想到的最简单的这个表的设计:imgup(id, url)

就这样简单,所有上传的图片信息都在这里记录,比如原先用户表中的 avatar 保存的是图像的url,现在就可以保存这个对应id就可以了,这样就简单多了,商品图片,帖子内容图片,……,都同理。

但是我总觉得这样太简单了,过于不妥,这个表到底怎样设计最合理呢?需不需要加上图片的一些其它信息呢,比如在客户端被上传前的原始名称,图片大小,图片尺寸,图片创建时间,图片修改时间,图片EXIF信息,……等等。

没有看过DZ的代码,帖子中可以看到每个附件图片和其它文件,并能控制权限让用户下载,不知道它那个是怎么做的。

这个问题被延伸到网站【文件上传】上面就不局限于图片了,所有上传的文件信息都放在这个 记录上传文件信息 的表里面,那就方便多了,管理也方便,所以这个问题我想了很久,就是没有经验,所以先来请教下各位大神。

希望有经验的大神们不吝赐教,指点迷津,我当没齿难忘,谢谢!

没人回答吗?

1.UPYUN的外链为形式:http://<空间名>.b0.upaiyun.com/
#可以自己去定义,可以参考save-key 详细说明
2.可以参考官方的SDK
3.DZ官方有插件你可以看看[DZ]
4.同2

我现在也在做类似平台,我采用的方式是使用nodejs来处理所有文件的请求。命名方式采用uid/year-month/hash 。七牛的话,看你的是不是私密空间了,如果不是则直接根据bucket的域名拼接就行。如果是私密空间,可用sdk获取文件临时下载地址。手机打的,说得有点乱,见谅

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!