[web]酷盘这样可以接受浏览器2G文件上传是如何实现的? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要回答技术问题时复制粘贴 AI 生成的内容
sdpfoue
V2EX    程序员

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

  •  
  •   sdpfoue 2011-10-15 17:31:24 +08:00 7056 次点击
    这是一个创建于 5176 天前的主题,其中的信息可能已经有所发展或是发生改变。
    只知道他们用到了swfupload,和自己写的一堆js
    上传过程有进度条和剩余时间估计并且长时间传大文件不超时,这是如何做到的?

    https://www.kanbox.com/
    13 条回复    1970-01-01 08:00:00 +08:00
    sdpfoue
        1
    sdpfoue  
    OP
       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
        2
    Paranoid  
       2011-10-15 19:24:32 +08:00
    没用过酷盘不清楚。

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

    接受2G文件的普通

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

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

    主要就是这个2个小时的上传不超时是怎么搞出来的,怀疑是做了分块。看了下html5 的file api可以操作本地文件,但到IE9都不支持,刚刚测试上传是用的IE6. 实在搞不懂他们是怎么实现的了
    kasuganosora
        4
    kasuganosora  
       2011-10-15 20:09:03 +08:00
    可以看看这个 PHP插件 http://www.ugia.cn/?page_id=74
    Paranoid
        5
    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
        6
    Ricepig  
       2011-10-15 21:39:17 +08:00
    可以上传多块然后服务端自己拼装。
    Livid
        7
    Livid  
    MOD
    PRO
       2011-10-15 22:42:53 +08:00
    @sdpfoue 移动的时候需要输入的是 node.name,也就是一个 node 在 URL 末尾的那个部分,通常都是半角字母和数字。
    sdpfoue
        8
    sdpfoue  
    OP
       2011-10-16 11:39:04 +08:00
    @kasuganosora 多谢,这个要研究一下

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

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

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

    多谢大家
    zxsky1
        13
    zxsky1  
       2011-10-24 12:40:48 +08:00
    @sdpfoue 传输时建立连接,无数据传输则服务器主动断开连接,包括网络断开、出错、传输完成等情况。不是保持长连接。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1570 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 16:22 PVG 00:22 LAX 08:22 JFK 11:22
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86