就像影子向导所说的那样,如果您将 iframe 指向发送回某些 headers的 url,这将起作用。这仅适用于服务器端脚本,例如 PHP:
<?php
// download.php
if (!$_GET['url']) die();
$url = urldecode($_GET['url']);
$url = 'http://' . str_replace('http://', '', $url); // Stop accessing local file system.
$filename = pathinfo($url, PATHINFO_BASENAME);
$mime = mime_content_type($filename);
header('Content-disposition: attachment; filename=' . $filename);
header('Content-type: '. $mime);
echo file_get_contents($url);
然后你只需要编辑你的 javascript 来通过这个download.php
文件传递 url。
if(split[length-1]!="JPEG" && split[length-1]!="bmp" && split[length-1]!="pdf" && split[length-1]!="JPG" && split[length-1]!="jpg" && split[length-1]!="jpeg" && split[length-1]!="png" && split[length-1]!="gif") {
$("body").append("<iframe src='download.php?url=" + file_path + "' style='display: none;' ></iframe>");
}
else {
window.open(file_path);
}