Vue axios Codeigniter下载文件(浏览器不预览txt/pdf文件,直接下载)

前端请求

this.axios.get('***/download', {
                    params: {
                        id: ***
                    },
                    responseType: "blob"
                }).then(function (response) {
                    if (response.status === 200) {
                        var url = window.URL.createObjectURL(response.data);
                        var a = document.createElement("a");
                        document.body.appendChild(a);
                        a.href = url;
                        a.download = 'output.txt';
                        a.click();
                    }
                }).catch(function (error) {
                    console.log(error);
                });

后端响应

public function download()
    {
        if ($this->input->method(TRUE) == 'GET') {
            $id = $this->input->get('id', TRUE);

            $this->output
                ->set_status_header(200)
                ->set_content_type('blob')
                ->set_output(file_get_contents(base_url("/assets/" . $id)));
        } elseif ($this->input->method(TRUE) == 'OPTIONS') {
            $this->output
                ->set_status_header(200)
                ->set_content_type('application/json');
        } else {
            $this->output
                ->set_status_header(405)
                ->set_content_type('application/json');
        }
    }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容