Я пытаюсь использовать php для загрузки файла с ssh-сервера.Загрузка работает, но я получил предупреждение с моей функцией readfile (), и символы остаются в стиле html, пока я использую эту функцию html_entity_decode ().
Если я попробую это: var_dump($output)
, это даст мне что-то вродеэта строка (ххх) "".Строка с символами ххх, но пустая.
Ошибка:
<b>Warning</b>: readfile(<?xml version="1.0" encoding="UTF-8"?><ResultatPEC xmlns:xsi="http://www.w3.org/2001/XMLSchema- instance" dateCreation="02-12-2018" versionFichier="0000842887" xsi:noNamespaceSchemaLocation="Resultats_PEC_2.10.xsd">
<IdentificationDepot CodeOffre="0" CodeSiteDepot="932930" DateDepot="26-11-2018" HeureDepot="07:04" IDDeposant="590226" NiveauService="E" NumDepot="BR099441" NumeroBip="0000793653" NumSTP="21787924" OptionDateDepot="DepotJourCreux" OptionMeca="0" OptionSiteDepot="Standard" TypeDeclaration="DEPOT" ZoneDense="1"/>
<Publication IDPCD="1174646" NoPublication="0520K87314" NoParution="391" NoParutionConstate="391" PublicationPanelisee="0" TypeParution="NUM" TypeParutionConstate="NUM">
in <b>D:\www\SAGAPEC\application\modules\supervision\controllers\AdminController.php</b> on line <b>397</b><br />
Мой код:
$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('name');
if ($fileName){
$stream = ssh2_exec($connection, "cat {$fileName}");
stream_set_blocking($stream, true);
$output = stream_get_contents($stream);
simplexml_load_string($output);
$abc = html_entity_decode($output,ENT_QUOTES,"UTF-8");
$file = $abc;
header("Content-Description: File Transfer");
header("Content-Type: application/octet-stream");
header('Content-Transfer-Encoding: binary');
header("Content-Disposition: attachment; filename=" . basename($file));
readfile($file);
exit();
}