V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
xbdsky
V2EX  ›  PHP

有这个一个需求,客户上传的图片都是手机拍摄的工地现场图片很大( 3M+),客户要求上传的速度快点,请问要怎么处理?有什么好的优化方案?

  •  
  •   xbdsky · Jan 13, 2017 · 7338 views
    This topic created in 3399 days ago, the information mentioned may be changed or developed.
    补充:图片已前端压缩处理,上传组件是用的 plupload 。
    42 replies    2017-01-16 11:04:26 +08:00
    yunhui
        1
    yunhui  
       Jan 13, 2017
    加上七牛近源上传
    shoaly
        2
    shoaly  
       Jan 13, 2017
    让他们 通过微信发 , 自动压缩处理
    yikyo
        3
    yikyo  
       Jan 13, 2017
    不需要清晰度就把图片压缩一下上传。
    shengchao
        4
    shengchao  
       Jan 13, 2017
    拍摄照片,可以对图片进行压缩再上传,自己控制好压缩比例,不是太糊就好,如果他们对这个方案不满意,跟他们说换 4g 卡就好了。
    Rice
        5
    Rice  
       Jan 13, 2017 via iPhone
    加速是不可能加速的了,只能靠后台异步上传才能维持得了现在的体验。
    deleted
        6
    deleted  
       Jan 13, 2017 via Android
    当然是先本地处理下的好
    cevincheung
        7
    cevincheung  
       Jan 13, 2017
    @yunhui
    qiniu +1

    But , 还是受限本地带宽。
    jarlyyn
        8
    jarlyyn  
       Jan 13, 2017
    cavnas 压下图片啊,很简单的操作。

    手机拍 3m+的图片什么鬼。分辨率明显太高。
    lslqtz
        9
    lslqtz  
       Jan 13, 2017
    前端压缩,配合第三方让客户端直接上传。
    spice630
        10
    spice630  
       Jan 13, 2017
    @jarlyyn
    3M 还高?高清大图不是 10M 起?
    spice630
        11
    spice630  
       Jan 13, 2017
    1.用异步多线程吃满带宽 ~~
    2.压缩后上传
    jarlyyn
        12
    jarlyyn  
       Jan 13, 2017
    @spice630

    3mb 不高?

    反正我 a7r2 的图, 4200w 像素也不过 5m 左右。

    抬杠请先注意自己的专业熟练度。
    jarlyyn
        13
    jarlyyn  
       Jan 13, 2017
    ericbize
        14
    ericbize  
       Jan 13, 2017
    @jarlyyn ??? 6D 2000w 像素一张已经接近 5M 了, 为什么 4200w 也是 5M ?
    spice630
        15
    spice630  
       Jan 13, 2017
    @jarlyyn
    你没看见我两句话都是用的问号.
    jarlyyn
        16
    jarlyyn  
       Jan 13, 2017
    @ericbize

    前 6d 用户表示。

    6d 的 raw 也不过 20m 左右。请注意自己生成的图片格式。
    ericbize
        17
    ericbize  
       Jan 13, 2017
    @jarlyyn 突然记起来了,好像是精细度的设置 , 看来遇到老司机了;记得高中那会,校运会,用了一天 (配 28 ~ 300 ) 手指各种痛,之后就对单反无爱了。
    cevincheung
        18
    cevincheung  
       Jan 13, 2017
    webp~
    akira
        19
    akira  
       Jan 13, 2017
    线路优化,包括更换 4g ,工地部署 wifi 热点,使用近点机房,对该手机运营商线路更友好的机房等
    数据优化,包括图片压缩,嗯,这个没什么可以处理的点了
    体验优化,包括后台上传,异步上传等

    差不多就这些了吧
    alect
        20
    alect  
       Jan 13, 2017
    我不会告诉你让他传 qq 相册的。。。自动压缩,完全够用。。速度还快。。
    Syc
        21
    Syc  
       Jan 13, 2017 via Android
    @jarlyyn QuQ 我 MX5 拍一张 2K 照片都几十 M
    gdtv
        22
    gdtv  
       Jan 13, 2017
    @jarlyyn 我试过在 iphone 和安卓自带的浏览器里用 cavnas 压缩照片,不行,可能是照片太大。至于出错的现象是什么我忘记了。用小一些的图片就可以。
    run2
        23
    run2  
       Jan 13, 2017
    @alect tos 吓死人还是 qq 相册
    appppap
        24
    appppap  
       Jan 13, 2017
    分辨率跟格式得考虑,再说大小吧
    ibegyourpardon
        25
    ibegyourpardon  
       Jan 13, 2017
    之前我们有个需求接近,后来定的方案是一次性拍完了,回公司再统一导入上传。。
    wdlth
        26
    wdlth  
       Jan 13, 2017
    4G 也有近 30Mbps 的上行了,买流量卡吧。
    kuxiazi
        27
    kuxiazi  
       Jan 13, 2017
    @shengchao
    @wdlth

    有些工地比较偏远手机信号很差劲的
    alibabamama
        28
    alibabamama  
       Jan 13, 2017
    先传一张尽量压缩的预览图,连上 wifi 了再后台默默传清晰的。微信为了用户体验,都提供了预览和查看原图。
    jarlyyn
        29
    jarlyyn  
       Jan 13, 2017 via Android
    @gdtv

    Canvas 可以调图片大小啊
    gdtv
        30
    gdtv  
       Jan 14, 2017
    @jarlyyn 将原始片 load 到 Canvas 的过程中会挂掉,不知是不是图太大了
    jiangzhuo
        31
    jiangzhuo  
       Jan 14, 2017
    如果是应用的话比较好办能拿到的权限多。
    我曾经做过一个方案就是会开蓝牙和热点,跟附近的其他开蓝牙或者热点的后台运行服务的手机通信,将文件分割成比较小的块,将文件快传递给其它的手机,其他的手机后台服务收到后,通过移动蜂巢网络上传收到的部分,然后服务端在收齐所有部分后组合成原文件。理论上只要手机够多能榨干基站的带宽。
    moxiaonai
        32
    moxiaonai  
       Jan 14, 2017 via Android
    前端压缩,异步上传
    moxiaonai
        33
    moxiaonai  
       Jan 14, 2017 via Android
    前端压缩,异步上传,安利一个插件 lrz ,之前用过效果很好
    jarlyyn
        34
    jarlyyn  
       Jan 14, 2017
    @gdtv

    好奇你的业务逻辑。

    做过保修系统。

    一般手机的照片, cavans 调整大小再上传,没什么问题啊。

    手机拍的照片本来就没 3mb 吧。
    NeinChn
        35
    NeinChn  
       Jan 14, 2017
    @jarlyyn 我用 3 年前的 Nexus 5 都能拍出 4M 左右的 JPEG...
    虽然大部分照片尺寸都在 1M-2M....
    这个不好说的....
    wohenyingyu02
        36
    wohenyingyu02  
       Jan 14, 2017 via iPhone
    直接通过微信上传不就好了?服务器部署 python 用微信库接……
    ZE3kr
        37
    ZE3kr  
       Jan 14, 2017 via iPhone
    让他们发到微信服务号,或者做个客户端,调用 imagemagick 压缩, JPEG 质量 60%-70%,调整分辨率。
    jininij
        38
    jininij  
       Jan 14, 2017 via Android
    加个上传进度的提示,或者动画效果,就可以让人主观里等待时间缩短 80%。
    realpg
        39
    realpg  
    PRO
       Jan 14, 2017
    js 压缩上传。
    publicAdmin
        40
    publicAdmin  
       Jan 14, 2017
    七牛,都不是事!
    TaMud
        41
    TaMud  
       Jan 15, 2017
    html5 支持断点分传
    利用这个特性加上进度显示
    客户就会觉的 ok 了
    LancerXin
        42
    LancerXin  
       Jan 16, 2017
    主要看需求吧,建议不要轻易压缩图片,万一以后用户需要高清原图呢?

    建议异步后台上传,其实用户讨厌的是上传时的进度条,还没有办法取消,让他们很焦躁,做成类似文件同步盘,后台做上传,重传的逻辑.
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4770 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 99ms · UTC 01:09 · PVG 09:09 · LAX 18:09 · JFK 21:09
    ♥ Do have faith in what you're doing.