Скачать в файле CodeIgniter FTP класс Ajax - PullRequest
0 голосов
/ 05 июня 2018

Я использую класс FTP в CodeIgniter, у них есть функция для загрузки файла с FTP.

Я хотел бы сохранить файл с сервера на мой компьютер.он сохраняет мой файл в моей папке загрузки, но файл "Не удается открыть файл".Когда я использую другой метод, CA не сохраняет файл.

Код PHP

$source_to_server = $this->input->post('path');
    $file = $this->input->post('file');

    header("Cache-Control: ");
    header("Content-type: text/plain");
    header("Content-Disposition: attachment; filename=".$file);

    $row =  $this->model_front->get_website($id_ftp_websites)->row();

    $config['hostname'] = $row->host_ftp;
    $config['username'] = $row->login_ftp;
    $config['password'] = $row->password_ftp;

    $this->ftp->connect($config);
    $this->ftp->download($source_to_server, 'php://output', 'auto');

main.js (Ajax)

var path = $("#path").text()+folderselect_contextmenu.find(".name").text();
        var file = folderselect_contextmenu.find(".name").text();
        $.ajax({
            type: "POST",
            url: $(this).attr('href'),
            data: {'path':path,'file':file},
            success: function(response, status, xhr) {
                var filename = "";
                var disposition = xhr.getResponseHeader('Content-Disposition');
                if (disposition && disposition.indexOf('attachment') !== -1) {
                    var filenameRegex = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/;
                    var matches = filenameRegex.exec(disposition);
                    if (matches != null && matches[1]) filename = matches[1].replace(/['"]/g, '');
                }

                var type = xhr.getResponseHeader('Content-Type');
                var blob = new Blob([response], { type: type });

                if (typeof window.navigator.msSaveBlob !== 'undefined') {
                    window.navigator.msSaveBlob(blob, filename);
                } else {
                    var URL = window.URL || window.webkitURL;
                    var downloadUrl = URL.createObjectURL(blob);

                    if (filename) {
                        var a = document.createElement("a");
                        if (typeof a.download === 'undefined') {
                            window.location = downloadUrl;
                        } else {
                            a.href = downloadUrl;
                            a.download = filename;
                            document.body.appendChild(a);
                            a.click();
                        }
                    } else {
                        window.location = downloadUrl;
                    }

                    setTimeout(function () { URL.revokeObjectURL(downloadUrl); }, 100); // cleanup
                }
            }
        });
        e.preventDefault();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...