前后端分离架构的上传文件问题

2018-11-23 09:42:00 +08:00
 kingfighters

最近在撸一个前后端分离的网站,上传文件的时候思路卡住了,其实就是上传用户头像。

其他的都解决,用户带 token,验证 token。但是头像这块该怎么搞?我看了网上的太多方案都不是可以用在这种前后端分离的。

初步思路是这样:用户点击上传,把文件放在某个静态目录下,通过用户 id 生成一个文件名保存在数据库里面。但是这样会有两个问题:1.图片大小,格式校验在前端做还是后端做? 2,访问静态目录下的图片,使用后端生成的 url 还是后端直接读数据库,返回文件名,让前端生成 url ?还是 nginx 访问静态目录? 3. 用户只能一次只有一个头像,之前的全部丢失。。虽然这个不是什么大问题。

求教各位大佬!

8092 次点击
所在节点    Python
24 条回复
fumichael
2018-11-23 15:35:51 +08:00
base64 放数据库,are you ok ???

url 不就是一个特别一点的字符串,跟 user 的 name 字段有区别吗?

图片上传,保存图片的 url 就可以啦
本地可以存相对地址,云储存需要多一个域名(/user/avatar/1.jpg ) vs ( http://domain.com/image/1.jpg)

图片上传,上传到本地,上传到七牛等云存储都可以

数据校验最好是前后段都要做啦,前端文件改个后缀不就能绕过了嘛(前端校验为了体验,后端校验为了安全)
514656282
2018-11-23 16:55:36 +08:00
实在不懂这个跟前后端分离有什么关系
behanga
2018-11-23 17:12:26 +08:00
用户头像什么的不都是该放在 CDN 上吗? 这些一般都是上传到 CDN 上,然后 callback 回来后,在 call 后端的 api,后端 api 一般就存个 url
Outliver0
2018-11-24 09:51:19 +08:00
docker 一个 fastdfs 系统,在 storage 上搭个 nginx 提共静态文件服务,可以试试

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/510617

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX