0

我使用脚本函数下载文件,使用 iframe 加载和新页面加载。

使用这种方法我下载了所有格式的文件,但我无法下载 .txt 文件

请帮我下载文件

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='" + file_path + "' style='display: none;' ></iframe>");
}
else {
    window.open(file_path);
}
4

1 回答 1

0

就像影子向导所说的那样,如果您将 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);
}
于 2012-10-03T10:54:17.847 回答