tempnam ()
Когда я использовал tempnam()
, он изменил расширение файла на .tmp
.Это может вызвать проблемы, поэтому я не рекомендую делать это таким образом.По крайней мере, вы должны изменить расширение обратно на то, что было в исходном имени файла.
Вы можете добиться этого, используя pathinfo()
в сочетании с regexp и rename()
, после , когда вы загрузили файл ftp.
mimetype
Относительно mimetype: эта информация вам нужна только в том случае, если выхотите, чтобы браузер отображал файл, который вы отправляете пользователю.Для загрузки браузер должен знать только, что это двоичный файл, а браузер или пользователь может угадать по расширению.
Если вы все еще хотите проверить mimetype, вам придется подождать, пока файл не будетна вашем сервере, поэтому код проверки MIME будет находиться внутри блока if(ftp_get())
.
ftp
Вы не показали свой код подключения (так я предполагаю), но выпонадобится полный путь для файла, который вы извлекаете с FTP.Если шаг ftp_get()
не выполняется, вы, вероятно, запрашиваете неверный файл.
В противном случае вам потребуется ftp_chdir()
после подключения и входа в систему.так что вы находитесь в правильной удаленной папке.
код
Этот код работал для меня:
<?php
$ftp = ftp_connect('server');
ftp_login($ftp, 'username', 'password');
$file = '/media.banzaimonkey.net/images/forums/boasas_banner_07.gif';
$tempFile = tempnam("/tmp", "FOO");
if(ftp_get($ftp, $tempFile, $file, FTP_BINARY)){
echo 'success!';
} else {
echo 'ffffail';
}
?>
Если этот код не работает для вас, вы можетевозникли проблемы с разрешениями, конфигурацией или другими проблемами, связанными со средой.