web-dev-qa-db-ja.com

HTMLでブラウザを開く代わりに.csvファイルを強制的にダウンロードする方法

ダウンロードボタンをクリックすると、新しい感謝のWebページにリンクし、2秒後にSDカードから.csvファイルのダウンロードを開始します。

ファイルをダウンロードする代わりに、ブラウザに表示されます。以下は私のコードです。

毎回ダウンロードオプションを取得するにはどうすればよいですか?私はhtmlが初めてなので、phpコードは使用しないでください。

.csvファイルを開いたブラウザの後に[名前を付けて保存]オプションを使用して保存したくありません。

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
        <head>
            <title>Monitoring System</title>
            <link href="/mchp.css" rel="stylesheet" type="text/css" />
            <script src="/mchp.js" type="text/javascript"></script>
        </head>

        <body>
            <div id="shadow-one">
                <div id="shadow-two">
                    <div id="shadow-three">
                        <div id="shadow-four">
                            <div id="page">
                                <div>
                                    <div>
                                        <div>
                                            <div id="title">    
                                                <div class="right">Interface</div>
                                                <div class="left">Overview</div>
                                            </div>

                                            <div id="content">
                                                <h1>Monitoring System</h1>

                                                <table style="padding-left: 10px;">
                                                    <div id="lcontent">
                                                    <div id="llogindiv" ><h1>Thanks for downloading...</h1></div>
                                                    <META HTTP-EQUIV="refresh" CONTENT="2;~GetEventFile~;";>
                                                </table>

                                            </div>
                                        </div>
                                        <div class="spacer">&nbsp;</div>
                                        <div id="footer">Copyright &copy; Monitoring System</div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </body>
    </html>

〜GetEventFile〜は、実行時にファイル名を教えてくれます。

7
Hari

この時点での安全な解決策は、応答ヘッダーを設定することです。

最新のブラウザアンカー 要素のdownload属性をサポートします。これは、ダウンロードされるファイルの名前を指定するために使用されます。

<a href="http://sstatic.net/stackexchange/img/logos/so/so-logo.png" download="logo.png">Download SO Logo</a>
7
B0Andrew

ダウンロード属性を使用できます

<a href="Document.pdf" download="Document.pdf">Download the pdf</a>

これはHTML5属性です。

2
Al Quarashi

PHPを使用して、これをヘッダーに追加します。

header('Content-Type: application/csv');
header('Content-Disposition: attachment; filename=example.csv');
header('Pragma: no-cache');
readfile("/filepath/example.csv");
0
Matthew Lymer