我不明白问题出在哪里。如果有人有主意:(我必须从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”}
答案 0 :(得分:1)
$(...)。on不是函数
jquery-1.5.1.min.js
on
方法是jQuery 1.7中引入的。
您的jQuery版本太旧了。从2011年开始!
升级到jQuery的较新版本。
请注意,jQuery的所有1.x和2.x版本都已过期,并且不再接收安全更新。
使用jQuery 3.3。