上传一个文件,处理之后返回下载链接,怎么处理比较好?

2016-04-30 15:12:38 +08:00
 pimin

需求:上传文件,处理之后返回新文件下载链接

文件都比较小,体积普遍在 1M 以内.

我考虑的两种处理方式


要用 js 获取文件 MD5,需要 IE10+,win7 默认 IE9 一般情况下要兼容嘛
处理之后返回下载链接,我在服务端试了 Sleep(3)返回模拟.

只是个人练手项目,两种方式区别不大.不支持 IE9 其实也没关系.
因为是学习阶段,所以想了解清楚点.更多按照正式项目来考虑问题.
说好学 Python 的,但是发现前端不处理好的话强迫症什么都不想写了.
所以就一起看了,不知道是不是不够专注.
我这种情况是继续看会前端看后端,还是完全不理前端比较好.

1676 次点击
所在节点    问与答
7 条回复
bdbai
2016-04-30 16:24:41 +08:00
考虑到文件不大,可以等处理完再返回结果。其实大文件也应该这样处理,否则出错的话文件就很尴尬了。另外轮询并不是一个好的解决方法。
k9982874
2016-04-30 17:59:19 +08:00
直接用用户唯一 id+时间戳+文件在服务器上的完整路径做 md5 生成链接啦,根本不管上传是否成功啦,最后不要相信任何用户端得出的数据啦。
pimin
2016-04-30 18:20:29 +08:00
@bdbai
我这里考虑的是怎么优雅的通知客户端,文件我处理好了,你来下载吧!
并没有信任问题(O_O)
bdbai
2016-04-30 19:02:54 +08:00
@pimin 服务端推送?长轮询或者 WebSocket
pimin
2016-04-30 19:20:45 +08:00
@bdbai
啊哈,我想 @2 楼的
第一种方案我觉得就是长连接了
post 之后服务端先处理一直不返回,处理好了再返回,客户端收到了之后再用 js 更新按钮.
bdbai
2016-04-30 19:35:03 +08:00
@pimin 1 楼也是这个意思
oott123
2016-04-30 21:15:45 +08:00
你这重点是处理是吧。
首先上传,上传完成后返回文件唯一 ID 。
然后问题就变成了服务器推数据的问题。
然后你就有一万种方法解决这个问题了。(轮询,长连接, websocket , socket.io …)

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

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

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

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

© 2021 V2EX