[web]酷盘这样可以接受浏览器2G文件上传是如何实现的?

2011-10-15 17:31:24 +08:00
 sdpfoue
只知道他们用到了swfupload,和自己写的一堆js
上传过程有进度条和剩余时间估计并且长时间传大文件不超时,这是如何做到的?

https://www.kanbox.com/
6660 次点击
所在节点    程序员
13 条回复
sdpfoue
2011-10-15 17:33:35 +08:00
发错结点了,想移动到程序员出现错误:

Traceback (most recent call last):
File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/_webapp25.py", line 703, in __call__
handler.post(*groups)
File "/base/data/home/apps/v2ex/1.353966803511879293/backstage.py", line 1659, in post
node_new = GetKindByName('Node', destination)
File "/base/data/home/apps/v2ex/1.353966803511879293/v2ex/babel/da/__init__.py", line 37, in GetKindByName
one = memcache.get(K + '::' + str(name))
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)
Paranoid
2011-10-15 19:24:32 +08:00
没用过酷盘不清楚。

不过下载的swfupload,demo就直接带有进度条和剩余时间的实例。

接受2G文件的普通

1. 后台接受的执行时间的限制 (php 脚本文件)
2. 服务器端上载文件的限制 (php.ini)
3. web server 内存限制 (apache 配置文件 httpd.conf)

或许有其他方法, 等楼下。
sdpfoue
2011-10-15 20:07:15 +08:00
@Paranoid 感觉这个酷盘的机制不是用post直接传的,改时间再长也会超时,我上传了一个500M的视频用了2个小时。文件限制这个就不说了,肯定是要改的。

主要就是这个2个小时的上传不超时是怎么搞出来的,怀疑是做了分块。看了下html5 的file api可以操作本地文件,但到IE9都不支持,刚刚测试上传是用的IE6. 实在搞不懂他们是怎么实现的了
kasuganosora
2011-10-15 20:09:03 +08:00
可以看看这个 PHP插件 http://www.ugia.cn/?page_id=74
Paranoid
2011-10-15 21:20:57 +08:00
@sdpfoue 例如在 php 中有 set_time_limit ( int $seconds ) 设置,虽然没有试过太长时间,按文档的解释,2小时不是问题。

http://php.net/manual/en/function.set-time-limit.php

同感兴趣是否有其他方法。
Ricepig
2011-10-15 21:39:17 +08:00
可以上传多块然后服务端自己拼装。
Livid
2011-10-15 22:42:53 +08:00
@sdpfoue 移动的时候需要输入的是 node.name,也就是一个 node 在 URL 末尾的那个部分,通常都是半角字母和数字。
sdpfoue
2011-10-16 11:39:04 +08:00
@kasuganosora 多谢,这个要研究一下

@Paranoid 之前是想当然了,仔细看了下时间设成0可以长连接

@Ricepig 浏览器操作本地文件的限制很多,html5的file api可以对本地文件进行读取和分块,但IE10以下不支持。剩下的对本地文件操作的只剩flash和applet一类的东西了吧。可以介绍下具体的思路吗,或者有已经实现了的代码可以参考下的

@Livid 收到
holystrike
2011-10-16 11:46:22 +08:00
客户端实现有很多,可以搜索 flash chunk upload
zxsky1
2011-10-17 11:11:38 +08:00
@sdpfoue
你好,经过大家解答之后还有什么疑惑么?
酷盘工作人员可以替你解答一切疑问。
:)
est
2011-10-17 11:14:18 +08:00
2G很正常吧。20G我都传过。长连接那是网速好。要么就用的是swf可以分块。
sdpfoue
2011-10-22 20:07:07 +08:00
@zxsky1 工作人员居然出现了。看语气就是直接的长连接了?如果真的是长链接实现的话就没什么问题了

多谢大家
zxsky1
2011-10-24 12:40:48 +08:00
@sdpfoue 传输时建立连接,无数据传输则服务器主动断开连接,包括网络断开、出错、传输完成等情况。不是保持长连接。

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

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

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

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

© 2021 V2EX