V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xbdsky
V2EX  ›  PHP

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

  •  
  •   xbdsky · 2017-01-13 17:09:19 +08:00 · 6377 次点击
    这是一个创建于 2631 天前的主题,其中的信息可能已经有所发展或是发生改变。
    补充:图片已前端压缩处理,上传组件是用的 plupload 。
    42 条回复    2017-01-16 11:04:26 +08:00
    yunhui
        1
    yunhui  
       2017-01-13 17:19:47 +08:00
    加上七牛近源上传
    shoaly
        2
    shoaly  
       2017-01-13 17:36:41 +08:00
    让他们 通过微信发 , 自动压缩处理
    yikyo
        3
    yikyo  
       2017-01-13 17:49:36 +08:00
    不需要清晰度就把图片压缩一下上传。
    shengchao
        4
    shengchao  
       2017-01-13 17:52:53 +08:00
    拍摄照片,可以对图片进行压缩再上传,自己控制好压缩比例,不是太糊就好,如果他们对这个方案不满意,跟他们说换 4g 卡就好了。
    Rice
        5
    Rice  
       2017-01-13 17:55:04 +08:00 via iPhone
    加速是不可能加速的了,只能靠后台异步上传才能维持得了现在的体验。
    deleted
        6
    deleted  
       2017-01-13 18:00:47 +08:00 via Android
    当然是先本地处理下的好
    cevincheung
        7
    cevincheung  
       2017-01-13 18:01:27 +08:00
    @yunhui
    qiniu +1

    But , 还是受限本地带宽。
    jarlyyn
        8
    jarlyyn  
       2017-01-13 18:03:27 +08:00
    cavnas 压下图片啊,很简单的操作。

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

    3mb 不高?

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

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

    前 6d 用户表示。

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

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

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

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

    好奇你的业务逻辑。

    做过保修系统。

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

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

    建议异步后台上传,其实用户讨厌的是上传时的进度条,还没有办法取消,让他们很焦躁,做成类似文件同步盘,后台做上传,重传的逻辑.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5293 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 05:56 · PVG 13:56 · LAX 22:56 · JFK 01:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.