文件下载iframe绝对vs相对地址

时间:2014-02-15 23:02:58

标签: javascript download

我们在javascript中使用此代码通过iframe下载文件,效果很好:

function initDownload(){
var path = "path/to/song.mp3", name = "song.mp3";
document.getElementById('myiframe').src = "dl.php?path="+path+"&name="+name;
}

<iframe id="myiframe" style="position: absolute; left: -10000px; display: none;" src=""></iframe>
<a href="#" onClick="initDownload(); return false;">download</a> 

这是dl.php文件:

<?php 
header("Content-Type: application/octet-stream");
if(isset($_GET['name'])){
    $name = $_GET['name'];
    header("Content-Disposition: attachment; filename=\"$name\"");
}
if(isset($_GET['path'])){
   $path = str_replace(' ', '%20', $_GET['path']);
   readfile($path);
}
exit;

&GT;

歌曲路径设置为绝对网址,这很有效。有一种情况,这个没有用,经过一些测试,结果发现只有相对网址被接受(工作)在该特定服务器上。 有没有理由说绝对网址不能在某些服务器上运行,可能是某些php设置还是什么?

1 个答案:

答案 0 :(得分:0)

你应该检查你在带有路径的dl.php文件中做了什么,这里htmljavascript将以相同的方式在所有服务器上运行。很简单,问题在于php到达文件的方式。