Jump to content

PHP ftp upload from html form


saikrishnan1142

Recommended Posts

$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. 

Link to comment
https://forums.phpfreaks.com/topic/280206-php-ftp-upload-from-html-form/
Share on other sites

You also need to check for an error during the upload ($_FILES['uploadfile']['error']).

 

Your script will "simply die" if ftp_login() fails. How about actually showing some kind of error if that, or ftp_connect(), fails?

And do you have your php.ini configured for development? It should have

error_reporting = -1
display_errors = on
or something more intelligent if you know how to do that.

Unfortunately, my hosting provider provided me the wrong documentation and I was trying to upload the file into a path that was non-existent. FTP root was pointing to a different path to the one that was specified in the documentation and hence the trouble.

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.