使用 PHP 下载 CSV 文件

当我点击导出按钮时,我想下载从 php 文件中获得的数据。唯一的问题是:当我点击按钮时,会生成文件 csv 文件,但它说:file could not be opened, Failed-forbidden


HTML 代码:


<form id="form" method="POST"> 

     <button id="export" name="export_btn" onclick="export_data();"><i class="fa fa-download" aria-hidden="true"></i> Export To CSV-File</button> <!--Export Btn: genereerd een csv file-->

</form>

JavaScript 代码:


function export_data(){

        

        event.preventDefault(); //zorgt ervoor dat je pagina niet onnodig herlaad als je op de btn drukt

        

        //deze function zorgt ervoor dat er een array wordt gemaakt van ID's van alle aangevingte checkboxes.

        var checkedIds = $(".chk:checked").map(function() {

            return this.id;

        }).toArray();


        var Arr = JSON.stringify(checkedIds); //giet de array om in een JSON formaat zodat we ermee kunnen werken in PHP

        

        //aan de hand van ajax stuur ik de array door naar "delete_measurement.php"

        $.ajax({

            type: "POST",

            url: "./export_measurement.php",

            data: {arr: Arr},

            

            success: function(data){ //neem de data dat werd gegenereerd in de php file en download het in een csv file.

                var encodedUri = encodeURI(data);

                var link = document.createElement("a");

                link.setAttribute("href", encodedUri);

                link.setAttribute("download", "airflow.csv");

                document.body.appendChild(link); // Required for FF


                link.click();

                

                //dit werkte nog niet helemaal. Via volgende link had ik mijn vraag gesteld: https://stackoverflow.com/questions/63846465/download-csv-file-by-using-php/63846748?noredirect=1#comment112902528_63846748

            }


        });

    }


慕慕森
浏览 141回答 1
1回答

繁星点点滴滴

由于您正在执行 POST,因此您只需要从 PHP 代码返回文件的内容,并在成功事件中执行以下操作:var encodedUri = encodeURI(data);var link = document.createElement("a");link.setAttribute("href", encodedUri);link.setAttribute("download", "airflow.csv");document.body.appendChild(link); // Required for FFlink.click();
打开App,查看更多内容
随时随地看视频慕课网APP