I want to upload a file via FTP upload in a form.
<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>
Here is the PHP file:
<?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_servern"; } else { echo "could not connect as $ftp_usernamen"; } $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 "nnconnection closed"; ?>
The FTP connection connects successfully but the file is nowhere.
Can anybody help me?
Thanks!
Advertisement
Answer
Because you have <input name="uploadedfile" type="file" />
:
$file = $_FILES["file"]["name"]; // wrong $file = $_FILES["uploadedfile"]["name"]; // right
Because you need the filename of the temporary copy stored by PHP, which exists on the server:
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
Refer to the PHP documentation for more information about $_FILES.