【发布时间】:2016-08-25 21:36:24
【问题描述】:
我将文件存储在 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');
?>
此代码返回此链接:
如果我输入此链接,Chrome 会使用此名称保存此文件:
Эльбрус+Джанмирзоев+-+Кавказская+любовь.mp3
但我需要用这个名称保存文件:
Эльбрус Джанмирзоев - Кавказская любовь.mp3
我的错误在哪里?
【问题讨论】:
-
你得到的文件名和你想要的文件名完全一样。你到底在找什么?
-
不,它用加号创建空格。但是现在空间很好:)
标签: php header content-disposition