如何使用content-disposition标头设置下载的UTF-8文件名?

艾汗(Aykhan)Amiraslanli

我将文件存储在Amazon Cloud Drive上。并且有用于设置response-content-disposition直接从亚马逊链接的选项

从API:

response-content-disposition:(可选)如果指定,则响应的内容处置将设置为此值

我需要将其设置为下载mp3文件。我不需要在浏览器上播放它。

我想设置下载的文件名: Эльбрус Джанмирзоев - Кавказская любовь.mp3

我尝试了很多方法... Urlencode ... Urlencode + HTTP构建查询等...

但是现在的结果是:Эльбрус+Джанмирзоев+-+Кавказская+любовь.mp3下载文件时。

这是我的php代码:

<?php
    function file_generate_download_link($filename = false, $force = true)
    {
            $json['tempLink'] = 'https://content-na.drive.amazonaws.com/cdproxy/templink/iTwUqoQ3cJXOpj6T8SCDmKwtF37TAENiSLQzy7pTSbkFfJttb';
            $url = $json['tempLink'];
            if($force)
            {
                $data['download'] = 'true';
            }
            if($filename)
            {               
                $data['response-content-disposition'] = ' attachment; filename*=UTF-8\'\''.urlencode($filename).'';
            }
            if(isset($data)) {
                $data = http_build_query($data);
                $url .= '?' . $data;
            }
            return $url;

    }

    echo file_generate_download_link($filename = 'Эльбрус Джанмирзоев - Кавказская любовь.mp3');
?>

这段代码向我返回了此链接:

https://content-na.drive.amazonaws.com/cdproxy/templink/iTwUqoQ3cJXOpj6T8SCDmKwtF37TAENiSLQzy7pTSbkFfJttb?download=true&response-content-disposition=+attachment%3B+filename%2A%3DUTF-D27%0%27% %25BB%25D1%258C%25D0%25B1%25D1%2580%25D1%2583%25D1%2581%2B%25D0%2594%25D0%25B6%25D0%25B0%25D0%25BD%25D0%25D0%25BC%25D0%25B8%25D1 %2580%25D0%25B7%25D0%25BE%25D0%25B5%25D0%25B2%2B-%2B%25D0%259A%25D0%25B0%25D0%25B2%25D0%25BA%25D0%25B0%25D0%25D0%25B7%25D1% 2581%25D0%25BA%25D0%25B0%25D1%258F%2B%25D0%25BB%25D1%258E%25D0%25B1%25D0%25BE%25D0%25B2%25D1%258C.mp3

如果我输入此链接,Chrome将使用以下名称保存该文件:

Эльбрус+Джанмирзоев+-+Кавказская+любовь.mp3

但是我需要使用以下名称保存文件:

Эльбрус Джанмирзоев - Кавказская любовь.mp3

我的错误在哪里?

艾汗(Aykhan)Amiraslanli

知道了!我需要使用rawurlencode函数!

因此正确的代码是:

<?php
    function file_generate_download_link($filename = false, $force = true)
    {
            $json['tempLink'] = 'https://content-na.drive.amazonaws.com/cdproxy/templink/iTwUqoQ3cJXOpj6T8SCDmKwtF37TAENiSLQzy7pTSbkFfJttb';
            $url = $json['tempLink'];
            if($force)
            {
                $data['download'] = 'true';
            }
            if($filename)
            {               
                $data['response-content-disposition'] = ' attachment; filename*=UTF-8\'\''.rawurlencode($filename).'';
            }
            if(isset($data)) {
                $data = http_build_query($data);
                $url .= '?' . $data;
            }
            return $url;

    }

    echo file_generate_download_link($filename = 'Эльбрус Джанмирзоев - Кавказская любовь.mp3');
?>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用PowerShell扩展ZIP存档(UTF-8文件名)

来自分类Dev

获取UTF-8文件名以与PHP ZipArchive一起使用

来自分类Dev

在python脚本中使用utf-8文件名时出错

来自分类Dev

获取UTF-8文件名以与PHP ZipArchive一起使用

来自分类Dev

UTF 8文件名?

来自分类Dev

boost.log在使用UTF8文件名创建文件时出现问题

来自分类Dev

如何使用S3上托管的文件的回形针/雾设置Content Disposition标头?

来自分类Dev

mkdir UTF-8文件名

来自分类Dev

如何设置独特的AWS S3文件名?

来自分类Dev

如何在m3u8文件旁边更改.ts文件名

来自分类Dev

UTF-8,PHP,Win7-现在有解决方案可以使用php在Win 7上保存UTF-8文件名吗?

来自分类Dev

UTF-8,PHP,Win7-现在有解决方案可以使用php在Win 7上保存UTF-8文件名吗?

来自分类Dev

Cakephp响应无法读取UTF-8文件名

来自分类Dev

Python─通过CherryPy从HTML表单获取UTF-8文件名

来自分类Dev

jplayer utf8文件名mp3问题

来自分类Dev

附件中的Munpack和utf-8文件名

来自分类Dev

如何使用Pandas读取UTF-8文件?

来自分类Dev

在iText Java中设置Content-Disposition标头文件名

来自分类Dev

发送带有utf-8文件名的MIME编码的电子邮件附件

来自分类Dev

AngularJS标头中的“ Content-Disposition”和文件名

来自分类Dev

如何为HTTP GET请求设置标头并触发文件下载?

来自分类Dev

如何设置下载链接的文件名?

来自分类Dev

如何设置下载链接的文件名?

来自分类Dev

如何使用正则表达式匹配Content-Disposition文件名?

来自分类Dev

如何模拟具有大写8.3文件名的FAT12文件系统?

来自分类Dev

如何使用 FPDF 将唯一文件名保存到目录?

来自分类Dev

如何在 Content-Disposition 的文件名中添加“/”

来自分类Dev

如何删除文件名不以-converted结尾的所有MP4文件?

来自分类Dev

错误:使用mp3文件时,文件名必须以.xml或.png结尾

Related 相关文章

  1. 1

    如何使用PowerShell扩展ZIP存档(UTF-8文件名)

  2. 2

    获取UTF-8文件名以与PHP ZipArchive一起使用

  3. 3

    在python脚本中使用utf-8文件名时出错

  4. 4

    获取UTF-8文件名以与PHP ZipArchive一起使用

  5. 5

    UTF 8文件名?

  6. 6

    boost.log在使用UTF8文件名创建文件时出现问题

  7. 7

    如何使用S3上托管的文件的回形针/雾设置Content Disposition标头?

  8. 8

    mkdir UTF-8文件名

  9. 9

    如何设置独特的AWS S3文件名?

  10. 10

    如何在m3u8文件旁边更改.ts文件名

  11. 11

    UTF-8,PHP,Win7-现在有解决方案可以使用php在Win 7上保存UTF-8文件名吗?

  12. 12

    UTF-8,PHP,Win7-现在有解决方案可以使用php在Win 7上保存UTF-8文件名吗?

  13. 13

    Cakephp响应无法读取UTF-8文件名

  14. 14

    Python─通过CherryPy从HTML表单获取UTF-8文件名

  15. 15

    jplayer utf8文件名mp3问题

  16. 16

    附件中的Munpack和utf-8文件名

  17. 17

    如何使用Pandas读取UTF-8文件?

  18. 18

    在iText Java中设置Content-Disposition标头文件名

  19. 19

    发送带有utf-8文件名的MIME编码的电子邮件附件

  20. 20

    AngularJS标头中的“ Content-Disposition”和文件名

  21. 21

    如何为HTTP GET请求设置标头并触发文件下载?

  22. 22

    如何设置下载链接的文件名?

  23. 23

    如何设置下载链接的文件名?

  24. 24

    如何使用正则表达式匹配Content-Disposition文件名?

  25. 25

    如何模拟具有大写8.3文件名的FAT12文件系统?

  26. 26

    如何使用 FPDF 将唯一文件名保存到目录?

  27. 27

    如何在 Content-Disposition 的文件名中添加“/”

  28. 28

    如何删除文件名不以-converted结尾的所有MP4文件?

  29. 29

    错误:使用mp3文件时,文件名必须以.xml或.png结尾

热门标签

归档