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

200 元在线跪求服务端配置问题,解决网页能下载视频!

  •  
  •   coffeeing · 2022-11-30 14:53:46 +08:00 · 2233 次点击
    这是一个创建于 722 天前的主题,其中的信息可能已经有所发展或是发生改变。

    问题点: 在 iOS 手机微信里打开网页,点击下载视频,下载的视频不能识别文件名和文件大小,求解决。 https://www.solaredufn.com/upload/download/Untitled-2.html

    18 条回复    2022-12-05 12:45:15 +08:00
    hua123s
        1
    hua123s  
       2022-11-30 15:27:44 +08:00
    用小程序做吧 https://developers.weixin.qq.com/miniprogram/dev/api/network/download/wx.downloadFile.html

    微信环境网页好像不支持吧(...)
    Jasio
        2
    Jasio  
       2022-11-30 15:42:23 +08:00
    服务端添加相应头试试

    https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Content-Disposition

    ```
    http http://192.168.50.181:3000/56954.mp4
    HTTP/1.1 200 OK
    Accept-Ranges: bytes
    Connection: keep-alive
    Content-Disposition: inline; filename="56954.mp4"
    Content-Length: 20612729
    Content-Type: video/mp4
    Date: Wed, 30 Nov 2022 07:39:42 GMT
    ETag: "7653bb231212bafb00a5b51d37effe4e26563973"
    Keep-Alive: timeout=5
    ```
    hua123s
        3
    hua123s  
       2022-11-30 15:57:11 +08:00
    收回刚才的话,试了下是可以的。
    res.header('Content-Type', 'application/octet-stream');
    res.header('Content-Disposition', 'attachment; filename=video.mp4');
    主要是这两个 header 就可以了。
    hua123s
        4
    hua123s  
       2022-11-30 16:01:07 +08:00
    coffeeing
        5
    coffeeing  
    OP
       2022-11-30 16:06:09 +08:00
    @hua123s 麻烦问下,这段代码是加在 Untitled-2.html 页面里,还是加在哪里?
    coffeeing
        6
    coffeeing  
    OP
       2022-11-30 16:06:15 +08:00
    @Jasio 麻烦问下,这段代码是加在 Untitled-2.html 页面里,还是加在哪里?
    wangsongyan
        7
    wangsongyan  
       2022-11-30 16:08:35 +08:00
    nginx 配置文件增加这两行,然后 nginx -s reload
    hua123s
        8
    hua123s  
       2022-11-30 16:17:37 +08:00
    @coffeeing 需要你们后端处理, 你前端处理不了。 像 7 楼这样在 nginx 加就可以下载,但是文件名显示不了。
    hua123s
        9
    hua123s  
       2022-11-30 17:03:24 +08:00
    如果你有 nginx 可以这样。
    server 外层加
    map $uri $basename {
    ~/(?<captured_basename>[^/]*)$ $captured_basename;
    }

    具体的 location pattern 加
    add_header Content-Disposition "attachment; filename=$basename";
    add_header Content-Type "application/octet-stream";
    完事
    zhangdashuan
        10
    zhangdashuan  
       2022-12-01 09:47:44 +08:00
    前端时间碰到一个问题,返回.zip 格式字节流,页面下载下来打不开,名称不对,也没有后缀名。后来发现是被转码了。后端设置请求头中名称需要 encode 一下,前端获取后需要 decode 一下。不知道对你有没有帮助。
    coffeeing
        11
    coffeeing  
    OP
       2022-12-01 10:00:23 +08:00
    @hua123s 昨晚后端写了,我测试下来没有解决大小和文件名,再麻烦看下是这样写么?

    location / {
    if (!-e $request_filename){
    rewrite “(.*)$ /index.php?s-$1 last;break;
    add header Content-Disposition "attachment; filename=$basename"
    add header Content-Type "application/octet-stream";
    }
    }

    map $uri $basename {
    ~/(?<captured basename>[~/]*)$ $captured basename;
    }
    server
    {
    listen 80:
    coffeeing
        12
    coffeeing  
    OP
       2022-12-01 10:01:45 +08:00
    @zhangdashuan 麻烦有没有对应的代码贴下,我学习下,谢谢谢谢
    hua123s
        13
    hua123s  
       2022-12-01 10:23:14 +08:00

    不知道你说的大小写是什么问题。如图是我的测试结果
    coffeeing
        14
    coffeeing  
    OP
       2022-12-01 11:40:44 +08:00
    我加了对应的服务端配置代码,打开下载是这样,文件没有识别出来,文件大小是 0B ,选择用其他应用打开看到的文件名是这样: https___www.solaredufn.com_upload_download_56954

    <img decoding="async" src=" " width="50%">
    wangsongyan
        15
    wangsongyan  
       2022-12-01 11:45:15 +08:00
    @coffeeing #14 加我:cXE6MTEwNDIzNzUzNA==(base64)
    coffeeing
        16
    coffeeing  
    OP
       2022-12-01 11:50:11 +08:00
    @wangsongyan 加了,非常感谢
    coffeeing
        17
    coffeeing  
    OP
       2022-12-05 10:42:54 +08:00
    @hua123s 不好意思,打扰下,能否加下 UVE6MTgyMDExMDkxMg== ( base64 )指导下,非常感谢。
    hua123s
        18
    hua123s  
       2022-12-05 12:45:15 +08:00 via iPhone
    @coffeeing 加了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   946 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 21:28 · PVG 05:28 · LAX 13:28 · JFK 16:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.