0
我們正在使用此代碼中的javascript通過IFRAME下載文件,而且運作良好:文件下載的iframe絕對VS相對地址
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;
>
歌曲路徑設置爲絕對網址,效果很好。曾經有過這種情況沒有奏效,經過一些測試後,事實證明,只有相對的網址被接受(工作)在特定的服務器上。 是否有一個原因,爲什麼絕對網址不會在一些服務器上工作,也許一些PHP設置或什麼?
感謝您的回答。我編輯過這個帖子來添加php文件內容。 – Toniq
正如我在想,你的PHP不好。您應該嘗試添加'$ root = realpath($ _ SERVER [「DOCUMENT_ROOT」]);'以文件名或類似的方式來檢測文件的真實絕對路徑。 – mrserge
但我設置路徑與JavaScript文件和路徑是正確的,如果我加載(例如MP3)文件在瀏覽器中播放。儘管如此,你可以告訴我php代碼在添加後應該是什麼樣子? – Toniq