ユーザーが右クリックして「リンクされたファイルに名前を付けて保存」を選択しなくても、ファイルをダウンロードするリンクを作成する方法はありますか? これを行うには PHP が必要ですか、それとも Javascript だけで実行できますか?
質問する
2047 次
4 に答える
0
ファイルのダウンロードを識別する HTTP 応答ヘッダーはサーバーによって送信されるため、JavaScript を使用して送信することはできません。正しいヘッダーを設定するには、おそらくサーバー側のコード行が必要になるでしょう (PHP のheader()
関数など)。
于 2012-06-24T15:47:22.597 に答える
0
これは JavaScript を使用して行う方法の例ですが、IE でのみ機能します。
<html>
<head>
<title>xbs_saveas_gt</title>
<script type="text/javascript">
function go_saveas() {
if (!!window.ActiveXObject) {
document.execCommand("SaveAs");
} else if (!!window.netscape) {
var r=document.createRange();
r.setStartBefore(document.getElementsByTagName("head")[0]);
var oscript=r.createContextualFragment('<script id="scriptid" type="application/x-javascript" src="chrome://global/content/contentAreaUtils.js"><\/script>');
document.body.appendChild(oscript);
r=null;
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
saveDocument(document);
} catch (e) {
//no further notice as user explicitly denied the privilege
} finally {
var oscript=document.getElementById("scriptid"); //re-defined
oscript.parentNode.removeChild(oscript);
}
}
}
</script>
</head>
<body>
<a href="#" onclick="go_saveas();return false">save the document</a><br />
</body>
</html>
またはdocument.print()
、PDFファイルとして保存することもできます
于 2012-06-24T15:50:54.477 に答える
0
次のように、php とヘッダー関数を使用してこれを解決できます。
<?php
$fileToOpen = "document.txt"; // the file that you want to download
header("Content-disposition: attachment; filename=$fileToOpen");
header("text/plain"); // Depending on the file
echo file_get_contents($fileToOpen);
したがって、リンクはドキュメントではなくphpファイルを直接指すことになります...
于 2012-06-24T15:52:16.240 に答える
0
簡単な PHP:
<?php
header("Content-type: application/octet-stream");
header("Location:filenamegoeshere.txt");
header("Pragma: no-cache");
header("Expires: 0");
?>
于 2012-06-24T15:54:01.293 に答える