我有一个PHP脚本,可以推送标题以允许下载文件.当通过超链接或通过浏览器使用链接调用时,此脚本可以正常工作.这是它的样子:
Download
我希望这是一个按钮(sbumit),所以我这样做:
但是,这不起作用.当我点击它.它启动下载对话框但文件名为空.它将文件名显示为".mp3"(不带引号)!通过超链接的相同链接显示确切的文件名"测试文件".为什么是这样??以下是有关的PHP代码段:
$filename = '../'.$_GET['file']; $properFilename = $_GET['properFilename'].'.mp3'; header("Content-Disposition: attachment; filename=\"".basename($properFilename)."\";" ); header("Content-Transfer-Encoding: binary"); header("Content-Length: ".filesize($filename)); readfile("$filename"); exit();
谢谢你的帮助.这让我整日疯狂!
我认为动作网址是urlencoded,并且不会发送硬编码的GET参数.
你可以尝试将action url设置为download.php,并有两个包含"file"和"properFilename"参数的隐藏字段,如下所示:
或者您可以使用输入类型="按钮",即使没有表单:
或图像按钮: