PHP / Ajax / HTML / SSH - я не понимаю, почему это не работает - PullRequest
0 голосов
/ 15 января 2019

Я не могу понять, откуда возникла проблема. Если у кого-то есть идея :( Мне нужно скачать файл с ssh-сервера, но файл переключается в соответствии с тем, что ищет пользователь. У меня есть PHP-файл для подключения ssh и загрузки. Я использую ajax, потому что у меня есть отправить местоположение файла.

Давайте посмотрим код:

HTML:

       <?php if ( !is_null($this->listdepotdrpadmin) ) { ?>
            <table id="supervisionResDepotDrp">
                <thead>
                    <tr>
                        <th class="center">EVT_ID</th>
                        <th class="center">EVT_DT</th>
                        <th class="center">EVT_NOMFIC</th>
                        <th class="center">EVT_STATUT</th>
                        <th class="center">EVT_TEXTE</th>
                        <th class="center">DOWNLOAD</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                     <!-- Le 7ème champ statut_depot n'est pas affiché, car il sert uniquement pour les RG
                      Il est redondantt avec le 6ème qui est sa traduction en langage humain -->
                      <?php foreach ($this->listdepotdrpadmin as $elem) :?>
                        <tr>
                            <td class="center"><?php print_r($elem['evt_id'])?></td>
                            <td class="center"><?php print_r($elem['evt_dt'])?></td>
                            <td id="afficher" class="center"><?php print_r($elem['evt_nomfic'])?></td>
                            <td class="center"><?php print_r($elem['evt_statut'])?></td>
                            <td class="center"><?php print_r($elem['evt_texte'])?></td>                
                            <!-- Si le champs evt_statut est remplis, affiche l'icone de telechargement -->  
                            <td class="center">
                                <?php if (isset($elem['evt_nomfic'])) : ?> 
                                    <img class='img-download' src='/img/download.png' id="js-download-file">
                                <?php endif;?>
                            </td>
                        </tr>
                        <span id="spnText"></span>
                       <?php endforeach; ?> 
                    </tr>
                </tbody>
            </table>
          <?php } ?>

PHP-файл:

public function ajaxdownloadfileAction() {
        $this->_helper->layout->disableLayout();
        $this->_helper->viewRenderer->setNoRender();

        $this->view->lib = $this->_labelsFile;

        $connection = ssh2_connect($this->_configFile->ftp->hostname, $this->_configFile->ftp->port);
        if ($connection) {
            $login = ssh2_auth_password($connection, $this->_configFile->ftp->login, $this->_configFile->ftp->password);
            if ($login) {
                $content = true;
                if ($content) {
                    $fileName = $this->_getParam('fileName');  
                    $local = ' C:\Users\nboulein\Desktop\test\ ';
                    ssh2_scp_recv($connection,$fileName,$local);

            }
            $connection = null; unset($connection);
        }
     }

     $result['status'] = 'OK';
     $result['message'] = 'LE ficheir a bien ete telecharger';

     echo json_encode($result);
}

Ajax-файл:

// Gestion du bouton de téléchargement du fichier
$('#resultatsRecherche').on('click','#js-download-file',function(){
    $('#js-download-file').css("cursor","pointer" );
    var currow = $(this).closest('tr');
    var fileName = currow.find('td:eq(2)').text();
    alert(fileName);
    $.ajax({
        type : 'POST',
        url : '/supervision/admin/ajaxdownloadfile',
        async : true,
        data : {
            fileName : fileName
        },
        success : function(result) {
           var vResult = jQuery.parseJSON(result);
           if(vResult.status == 'OK'){
               alert(vResult.message);
           }
        }  
    });
});

На моей веб-странице ничего не происходит, и когда я открываю консоль, появляется следующее:

Uncaught TypeError: $ (...). On не является функцией в HTMLDocument.
(admin.js: 224) в Object.resolveWith (jquery-1.5.1.min.js: 16)
в Function.ready (jquery-1.5.1.min.js: 16) в HTMLDocument.A (jquery-1.5.1.min.js: 16)

Я попытался зайти на мою веб-страницу AJAX и получил следующее:

Предупреждение: ssh2_scp_recv () [function.ssh2-scp-recv]: невозможно получить удаленный файл в
D: \ WWW \ SAGAPEC \ приложения \ Modules \ контроль \ Контроллеры \ AdminController.php
в строке 383 {"status": "OK", "message": "LE ficheir a bien ete telecharger"}

1 Ответ

0 голосов
/ 15 января 2019

$ (...). Не является функцией

JQuery-1.5.1.min.js

Метод on был представлен в jQuery 1.7.

Ваша версия jQuery просто слишком старая. Это с 2011 года!

Обновление до новой версии jQuery.

Обратите внимание, что все версии jQuery 1.x и 2.x устарели и больше не получают обновления безопасности.

Используйте jQuery 3.3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...