Загрузка FTP через PHP-форму

Я хочу загрузить файл через FTP-загрузку в форме.

<html> <body> <form enctype="multipart/form-data" action="upload_file.php" method="POST"> <input type="hidden" name="MAX_FILE_SIZE" value="100000" /> Choose a file to upload: <input name="uploadedfile" type="file" /><br /> <input type="submit" value="Upload File" /> </form> </body> </html> 

Вот файл PHP:

 <?php $ftp_server = "xxx"; $ftp_username = "xxx"; $ftp_password = "xxx"; // setup of connection $conn_id = ftp_connect($ftp_server) or die("could not connect to $ftp_server"); // login if (@ftp_login($conn_id, $ftp_username, $ftp_password)) { echo "conectd as $ftp_username@$ftp_server\n"; } else { echo "could not connect as $ftp_username\n"; } $file = $_FILES["file"]["name"]; $remote_file_path = "/home/www/lifestyle69/import/".$file; ftp_put($conn_id, $remote_file_path, $file, FTP_ASCII); ftp_close($conn_id); echo "\n\nconnection closed"; ?> 

Соединение FTP подключается успешно, но файл нигде.

Кто-нибудь может мне помочь?

Благодаря!

Поскольку у вас есть <input name="uploadedfile" type="file" /> :

 $file = $_FILES["file"]["name"]; // wrong $file = $_FILES["uploadedfile"]["name"]; // right 

Поскольку вам нужно имя файла временной копии, хранящейся в PHP, которая существует на сервере:

 ftp_put($conn_id, $remote_file_path, $file, FTP_ASCII); // wrong ftp_put($conn_id, $remote_file_path, $_FILES["uploadedfile"]["tmp_name"], FTP_ASCII); // right 

Дополнительную информацию о $ _FILES см. В документации по PHP .

Вы уверены, что папка, которую вы загружаете, имеет правильные разрешения? Попробуйте изменить его на 777 и посмотрите, работает ли это.

Файл хранится на сервере с временным именем, поэтому при попытке загрузки $_FILES['file']['name'] он терпит неудачу, потому что файл с таким именем не существует. Вместо этого вы должны вызвать ftp_put() с помощью $_FILES['file']['tmp_name']

Здесь объясняется немного лучше