$host = 'XXXXXXXXXXX' $usr = 'XXXXXXXXXXX'; $pwd = 'XXXXXXXXXXX'; $destDir = $_POST['filetype']; $conn_id=ftp_connect($host); $success = ftp_login($conn_id,$usr,$pwd); $rightName = basename($_FILES['uploadfile']['name']); ftp_pasv($conn_id, true); if($success) { ftp_put($conn_id,$destDir.'/'.$rightName,$_FILES['uploadfile']['tmp_name'],FTP_BINARY) or die('Cannot ftp'); ftp_close($conn_id); echo ' Upload Successful'; }
The form I am using for upload is this:
<form enctype="multipart/form-data" action="upload.php" method="POST"> Type of file: <input name="filetype" id="filetype1" /><br /> Choose a file to upload:<input name="uploadfile" type="file" /><br /> <input type="submit" value="Upload File" />
I have tried multiple options. 'ftp_put' from php's tmp upload location to a working directory and then to a destination directory and 'ftp_put' directly from temporary upload directory of PHP to the desired directory but FTP for some reason does not seem to work at all. It just simply dies. A normal upload using 'move_uploaded_files()' works perfectly. In some of the forums it is mentioned that for ftp to work I can't have 'file' input type and just have a plain text box. I don't understand why that needs to be the case or even if it true. Why is the above code not working? I have checked the permissions on the destination folder and it should not be the issue.