У меня есть HTML-форма, которая предназначена для загрузки файлов на сервер. Я программирую FTP-клиент, который до сих пор идет хорошо, за исключением того, что файлы не будут загружаться на сервер. Моя форма такова:
<form action='upload.php' id='upload'> <input type='file' name='file' /> <input name='file_name' placeholder='File Name' /> <input type='submit' value='upload' /> </form>
И вот мой php:
<?php $ftp_connection = ftp_connect($_COOKIE['domain']); if(@ftp_login($ftp_connection, $_COOKIE['username'], $_COOKIE['password'])) { ftp_put($ftp_connection, $_REQUEST['file_name'], $_REQUEST['file']); } ftp_close($ftp_connection); ?>
Также обратите внимание, что все эти файлы cookie работают отлично, поскольку я использую их для входа в FTP-интерфейс FTP.
В вашей форме отсутствует enctype="multipart/form-data"
которая требуется при загрузке файлов.
Кроме того, необходим метод POST.
Измените свою <form...
следующим образом:
<form action='upload.php' id='upload' enctype='multipart/form-data' method='post'>
<form>
умолчанию GET при пропуске.
Также посмотрите:
Пример с этой страницы:
<?php $ftp_server=""; $ftp_user_name=""; $ftp_user_pass=""; $file = "";//tobe uploaded $remote_file = ""; // set up basic connection $conn_id = ftp_connect($ftp_server); // login with username and password $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); // upload a file if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) { echo "successfully uploaded $file\n"; exit; } else { echo "There was a problem while uploading $file\n"; exit; } // close the connection ftp_close($conn_id); ?>
а также
Пример с этой страницы:
<?php ftp_chdir($conn, '/www/site/'); ftp_put($conn,'file.html', 'c:/wamp/www/site/file.html', FTP_BINARY ); ?>
а также
<?PHP $destination_path = "src/bin/"; //where you want to throw the file on the webserver (relative to your login dir) $destination_file = $destination_path."img.jpg"; //This will create a full path with the file on the end for you to use, I like splitting the variables like this in case I need to use on on their own or if I'm dynamically creating new folders. $file = $myFile['tmp_name']; //Converts the array into a new string containing the path name on the server where your file is. $upload = ftp_put($conn_id, $destination_file, $file, FTP_BINARY);// upload the file if (!$upload) {// check upload status echo "FTP upload of $destination_file has failed!"; } else { echo "Uploaded $file to $conn_id as $destination_file"; } ?>