2016-09-27 18 views
4

ダウンロードする代わりにブラウザでCSVファイルを開く方法があるのだろうか?CSVファイルをブラウザでダウンロードする代わりに開くHTML

マイコード:

<a href="Myfile.csv">Open</a> 
+0

可能性の重複[PHPの代わりのcsvファイルをダウンロードするには、ブラウザで開いて取得](http://stackoverflow.com/questions/16188329/in-ダウンロードの代わりにphp-csv-file-it-get-in-the-browser) –

+0

これはHTMLで必要としていません – SMH

+0

ブラウザでCSVを表示したいですか?なぜそれをテキストとして送信しないのですか? – Brad

答えて

1

コード:<a href="Myfile.csv">Open</a>のように、実際にはダウンロードしていません。ただし、クライアントブラウザにファイル(この場合は.csvファイル)の読み取り/レンダリング機能がない場合は、代わりにユーザーがファイルをダウンロードする必要があります。明示的にダウンロードを強制するには、headerを設定して、ブラウザーに質問のファイルの要求を処理する方法を伝える必要があります。このオーバー簡素化スクリプトを考えてみましょう:

PHPスクリプト:HTMLマークアップを含むことが期待されている

<?php // NOTICE THAT THERE IS NO WHITE-SPACE OR OUTPUT BEFORE <?php 
     // AND ALSO; NO "echo" STATEMENT AT ALL BEFORE THE if(isset()){} BLOCK. 

     if(isset($_GET['d'])){ 
      $file = htmlspecialchars(trim($_GET['d'])); 
      processDownload($file); 
     } 

     function processDownload($fileName) { 
      if($fileName){ 
       $dldFile = $fileName; 
       if(file_exists($fileName)){ 
        $size  = @filesize($fileName); 
        header('Content-Description: File Transfer'); 
        header('Content-Type: application/octet-stream'); 
        header('Content-Disposition: attachment; filename=' . $fileName); 
        header('Content-Transfer-Encoding: binary'); 
        header('Connection: Keep-Alive'); 
        header('Expires: 0'); 
        header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 
        header('Pragma: public'); 
        header('Content-Length: ' . $size); 
        return TRUE; 
       } 
      } 
      return FALSE; 
     } 

    ?> 


    <!DOCTYPE html> 
    <html lang="en"> 
     <head> 
      <meta charset="UTF-8"> 
      <title>Download Example</title> 
     </head> 
     <body> 
      <div class="container"> 
       <div class="col-md-12"> 
        <!-- Myfile.csv IS IN THE SAME DIRECTORY AS THIS FILE: index.php --> 
        <!-- OTHERWISE; SET THE PATH TO THE CSV FILE AS VALUE OF d --> 
        <!-- NOTICE THAT THE LINK TO DOWNLOAD HERE IS THE SAME URL --> 
        <!-- WITH A QUERY PARAMETER ?d=Myfile.csv APPENDED TO IT.--> 
        <a href="index.php?d=Myfile.csv">Download CSV</a> 
       </div> 
      </div> 
     </body> 
    </html> 

が、これはあなたにそれについて、独自の道を行く方法についての手掛かりを与えるかもしれません。

グッドラックと乾杯;-)

3

次のヘッダを追加する必要があります。

header ('Content-Type: text/csv'); 
2
header ('Content-Type: text/csv'); 

OR

設定はiframeとそれにCSVファイルのURLを入れました。

+0

'ヘッダ('コンテンツ-disposition:attachment; filename = "put_your_preferred_file_name_here.csv" '); ' - 強制的にCSVファイルをダウンロードします。 – Naga

+0

そうです。私は私の答えを更新しました。 @NagarajanPerumal:[これを調べる](http://stackoverflow.com/questions/6544382/csv-file-browser-opens-it-instead-of-downloading)もご覧ください。それは何ですか? – Virb

+0

良いしかし、私はあなたの答えを投票していませんでした! – Naga

関連する問題