Open CSV file in browser instead of loading HTML

Just wondering if there is a way to open the csv file in a browser instead of downloading?

My code is:

<a href="Myfile.csv">Open</a>
+4
source share
3 answers

With code like this:, <a href="Myfile.csv">Open</a>you really are not doing any loading. However, if the client’s browser does not have the ability to read / display the file (in this case, the CSV file), it will force the user to download the file. In order to explicitly complete the download, you must set headerto tell the browser how to handle the request for the file in question. Consider this simplified Script:

PHP Script: CONTENTS HTML MARKUP

<?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>

Hopefully this will give you a hint on how to do it your own way.

; -)

+1

.

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

OR

Install an iframe and put the URL of your CSV file in it.

+3
source

Source: https://habr.com/ru/post/1655912/


All Articles