Я пытаюсь перенести файл PDF с нашего сервера на другой через SFTP. Я проверил файлы, и они не являются коррумпированными. Я могу scp их в командной строке на свой компьютер, и они открываются просто отлично. Примечание: Я могу успешно перенести файл pdf, он просто поврежден, как только он попадает на другой сервер.php sftp using ssh2 corruptting pdf files
Я попытался с помощью двух методов:
conn = ssh2_connect($url, 22);
$auth = ssh2_auth_password($conn, $userName, $password);
$sftp = ssh2_sftp($conn);
file_put_contents("ssh2.sftp://".$sftp.$remoteFilePath, $localFilePath);
Посмотрев на этот вопрос, я наткнулся на вопрос ниже и попробовал данный ответ:
ssh2_scp_send() using php corrupts pdf
conn = ssh2_connect($url, 22);
$auth = ssh2_auth_password($conn, $userName, $password);
$sftp = ssh2_sftp($conn);
$fp = fopen("ssh2.sftp://".$sftp.$remoteFilePath, "w");
fwrite($fp, $localFilePath);
fclose($fp);
Это также переносит файл, но также поврежден, так что я не могу открыть его в своем FTP-графике после того, как он находится на своем сервере.
Теперь я знаю о другом расширении php, которое это делает. Я попробую, если я не смогу заставить это работать, но я потратил на это достаточно времени, и СЛЕДУЕТ работать. Есть предположения?
убедитесь, что передача двоичная. –
@ Дагон, который я проверил, и, например, file_put_contents PHP говорит, что в документах двоично-безопасный. Есть ли что-то, что я должен сделать, чтобы включить двоичный файл, который я не вижу? –
fopen должен быть r не w? и добавьте b так «rb» * «Если вы не укажете флаг« b »при работе с бинарными файлами, у вас могут возникнуть странные проблемы с вашими данными, включая файлы с поврежденными изображениями и странные проблемы с символами \ r \ n. * * –