Я не могу понять, откуда возникла проблема. Если у кого-то есть идея :( Мне нужно скачать файл с 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"}