PHP / Ajax / HTML / SSH-我不明白为什么它不起作用

时间:2019-01-15 14:23:21

标签: php ajax ssh html-table

我不明白问题出在哪里。如果有人有主意:(我必须从ssh服务器下载文件,但是文件会根据用户的需求进行切换。我有一个用于ssh连接和下载的PHP文件。我使用的是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);
           }
        }  
    });
});

在我的网页上什么也没有发生,当我打开控制台时,出现以下情况:

  

未捕获的TypeError:$(...)。on不是HTMLDocument上的函数。
      (admin.js:224)位于Object.resolveWith(jquery-1.5.1.min.js:16)
      在HTMLDocument.A(jquery-1.5.1.min.js:16)的Function.ready(jquery-1.5.1.min.js:16)处

我试图进入我的AJAX网页,我得到了:

  

警告:ssh2_scp_recv()[function.ssh2-scp-recv]:无法在
中接收远程文件       D:\ www \ SAGAPEC \ application \ modules \ supervision \ controllers \ AdminController.php
      在第383行{“状态”:“确定”,“消息”:“ LE ficheir bien ete telecharger”}

1 个答案:

答案 0 :(得分:1)

  

$(...)。on不是函数

     

jquery-1.5.1.min.js

on方法是jQuery 1.7中引入的。

您的jQuery版本太旧了。从2011年开始!

升级到jQuery的较新版本。

请注意,jQuery的所有1.x和2.x版本都已过期,并且不再接收安全更新。

使用jQuery 3.3。