好的,我似乎在使脚本下载具有正确文件名的文件时遇到问题。
如果我删除像这样的空格和破折号
if($type == 'mc'){
$file_name = $_POST['Ids'];
$file_name = str_replace('-', '', $file_name);
$file_name = str_replace(' ', '&', $file_name);
$url = base64_decode($stream);
$file_url = "scd.php?stream=".$url."&name=".$file_name."";
$url = array('url' => $file_url);
echo json_encode($url);
}
这是 scd.php
<?php
$file = $_GET['stream'];
$name = $_GET['name'];
header("Content-type: application/x-file-to-save");
header("Content-Disposition: attachment; filename=".$name.".mp3");
readfile($file);
exit();
?>
它将强制下载,但只会将第一个单词保存在发送的名称中。可以这么说,就是Your Song Here
要保存为该名称,Your.mp3
但是如果我str_replace
从$file_name
变量中删除,那么它将尝试将文件另存为Your
,不带扩展名,但仅保留第一个单词。
我需要它来传递整个$file_name
变量ex。Your Song Here.mp3
并将其另存为MP3文件。
我不太确定自己在做什么错
将文件名用引号引起来,例如
header("Content-Disposition: attachment; filename=\"${name}.mp3\"");
(不记得如何在php的字符串中转义“”)。
我相信这实际上是HTTP规范所必需的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句