2015-04-14 4 views
-1

Я написал сценарий для загрузки файлов с моего компьютера на внешний сервер. Однако появляется следующее сообщение об ошибке:Загрузка через FTP с использованием PHP

Warning: ftp_put(): Filename invalid 

Я попытался изменить имя файла и т. Д., Но не повезло. Вот мой код:

$ftp_server = "ipaddress"; 
$username = "username"; 
$password = "password"; 

$destination_file = 'C:\ftp_root\borna\ttt.txt'; 
$source_file = 'C:\inetpub\ftp_test.txt'; 

// setup basic connection 
$conn_id = ftp_connect($ftp_server); 

// check connection 
if(!$conn_id){ 
    print "FTP connection has failed.<br>"; 
}else{ 
    print "FTP connection successfull.<br>"; 
} 

// login with username and password 
$login_result = ftp_login($conn_id, $username, $password); 

// check login 
if(!login_result){ 
    print "FTP login credentials not recognised.<br>"; 
}else{ 
    print "FTP login credentials recognised.<br>"; 
} 

// upload our file 
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY); 


// read upload status 
if(!$upload){ 
    print "FTP upload has failed.<br>"; 
}else{ 
    print "FTP upload was successfull on file $source_file to $destination_file via $ftp_server.<br>"; 
} 

// close the ftp stream 
ftp_close($conn_id); 
+0

Вы используете 'FTP_BINARY', но пытаетесь загрузить файл ASCII. Используйте FTP_ASCII в соответствии с руководством http://php.net/manual/en/function.ftp-put.php –

+0

hmm, чтобы просто быть понятным. когда я должен использовать что? Было бы хорошо, если бы вы могли сформировать ответ о том, какой режим передачи следует использовать для файлов. – Eclipse

+0

Я изменил его на FTP_ASCII, и я все равно получаю ту же ошибку. – Eclipse

ответ

0

Я бы сказал, что ошибка правильно:

$destination_file = "C:\ftp_root\borna\ttt.txt"; 
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY); 

Вы подпитывая его локальный путь в качестве целевого пути (см C: бит).

Если вы не уверены в том, какие серверные пути будут выглядеть, просто откройте сайт с помощью обычного FTP-клиента.

Если у вас нет FTP-клиента, вы можете скачать бесплатную ссылку, которая называется FileZilla. Установите его, запустите и введите свои учетные данные FTP (фрагмент данных в $ftp_server, $username и $password переменных) в верхней панели. После того, как вы установили соединение, вы увидите удаленные пути в поле Remote Site.

+0

Действительно бесполезный ответ для кого-то, кто сейчас невежествен. Можете ли вы сказать мне, как должен выглядеть путь к серверу? – Eclipse

+0

Что делать, если он загружается на сервер Windows? –

+0

@ChipDean Что я, между прочим. – Eclipse

Смежные вопросы