-1

我正在使用强制下载脚本来避免在我的站点中流式传输 mp3 文件。它可以在我的电脑上运行,但在我的安卓手机上,下载没有开始!!在我的 android 平板电脑中,文件扩展名变为 filename.mp3;所以文件必须重命名才能工作!

这里有什么问题 ?

<?php
$file=str_replace("\0", null, htmlspecialchars($_GET['file']));
$name = $_GET['name'];
header ("Content-type: octet/stream");
header ("Content-disposition: attachment; filename=".$name.";");
readfile($file);
exit;
?>

我只是做了一个小改动,它在平板电脑上运行良好。但是我的安卓手机没有下载。

header("Content-Disposition: attachment;filename = $name");
4

4 回答 4

2

您的文件名标题看起来不正确。尝试这个:

header('Content-Disposition: attachment; filename="'.$name.'"');

见: http: //php.net/manual/en/function.header.php

于 2013-06-14T16:17:39.507 回答
1

文件名末尾有一个分号:

.";");
于 2013-06-14T16:17:08.097 回答
0

删除;文件名后面的。基于规范只是一个带引号的字符串

标题应如下所示(注意文件名前的空格和文件名周围的引号)

header("Content-Disposition: attachment; filename=\"".$name."\"");
于 2013-06-14T16:17:20.667 回答
0

如果将其更改为 header ('Content-disposition: attachment; filename="' . $name . '"') 它应该可以工作。

如果您查看RFC 2616,您会注意到在 19.5.1 中,分号仅将处置类型(即“附件”)与文件名分开,并且文件名应该是带引号的字符串。

于 2013-06-14T16:22:39.667 回答