ajax和php中的force_download

时间:2016-08-23 11:27:40

标签: php jquery ajax

如何在ajax中使用force_download php下载, 有可能???

我有这样的ajax请求:

function save(path, namaFile, namaExcel) {
    $.ajax({
        url: "<?php echo site_url('members/program_kecil/program_kecil/convert_csv_ke_excel'); ?>",
        type: 'post',
        data: {path: path,
            nama: namaFile,
            namaExcel: namaExcel
        },
        success: function (response) {
            $('#modal_form').modal('hide'); // show bootstrap modal
        }
    });
}

这是php:

class Program_kecil extends Members_Controller{
public function convert_csv_ke_excel() {
    require_once APPPATH . "/libraries/CSVToExcelConverter.php";
    $this->load->helper('file');
    $this->load->helper('download');

    CSVToExcelConverter::convert($this->input->post('path'), $this->input->post('namaExcel'));
    $this->download_excel($this->input->post('namaExcel'));
    echo json_encode($this->input->post('namaExcel'));
}

public function download_excel($file) {
    header('Content-type: application/ms-excel');
    header('Content-Disposition: attachment; filename=' . $file);
    $filedownload = file_get_contents($file);
    force_download($filedownload, null);
}

我的模态已关闭;

P.S:成功的ajax(回调)是这样的:

"D:\/xampp\/htdocs\/develop_tsurumaru\/assets\/uploads\/LJTD2508.xlsx"

将下载excel的路径。

请告知。

1 个答案:

答案 0 :(得分:1)

通过AJAX,您无法直接下载文件,您需要在新标签页中打开该路径进行下载。

像这样,

USERS (user_name, email, balance)

更新URL以从Web而不是文件系统访问该文件。