Hello and welcome to our community! Is this your first visit?
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 2 of 2
  1. #1
    New to the CF scene
    Join Date
    Aug 2007
    Thanked 0 Times in 0 Posts

    ftp_put() successfull but with a problem

    Hi, i used the following code to upload large files ranging 1-50 MB..the problem is i tried uploading a file of size 1.78 MB and it worked..then i tried uploading a file 2.9 MB and it didn't work..then i tried a uploading a file of size 2.18 MB and it also didnt work..by didnt work i mean that when checking the directory online, there is a file with the name of the uploaded file but its size is 0 bytes!!...i mean the uploading is fine, but the size is the problem..
    the upload_max_filesize is set to 60MB just to make sure in wont cause a problem so im pretty sure that's not my problem..can anyone help?...

    $ftp_server = "//ftp server";
    $conn_id = ftp_connect($ftp_server);

    // login with username and password
    $ftp_user_name = "//username";
    $ftp_user_pass = "//password";

    //$web_location is needed for the file_exists function, the directories used by FTP
    //are not visible to it will will always return not found.
    $local_file_name = $_FILES['directory']['name'];//"file.txt";
    $source_file = $_FILES['directory']['tmp_name'];

    //build a fully qualified (FTP) path name where the file will reside

    $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

    // check connection
    if ((!$conn_id) || (!$login_result)) {
    echo "FTP connection has failed!";
    echo "Attempted to connect to $ftp_server for user $ftp_user_name";
    } else {
    echo "Connected to $ftp_server, for user $ftp_user_name";
    $upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);

    // check upload status
    if (!$upload) {
    echo "FTP upload has failed!";
    } else {
    echo "Uploaded $source_file to $ftp_server as $destination_file";

    //use ftp_site to change mode of the file
    //this will allow it be visible by the world,
    $ch=ftp_site($conn_id,"chmod 777 ".$destination_file);
    // close the FTP stream
    //verify file was written
    if (file_exists($web_location))
    echo "file was uploaded as $web_location";
    echo "Could not create $web_location";
    //end if

  2. #2
    Senior Coder CFMaBiSmAd's Avatar
    Join Date
    Oct 2006
    Denver, Colorado USA
    Thanked 381 Times in 373 Posts
    Your code blindly executes the ftp logic without ever checking if the upload was successful. I recommend adding some error checking, error reporting, and error recovery logic to your code by checking the $_FILES['directory']['error'] element and taking appropriate action depending on the value - http://www.php.net/manual/en/feature...oad.errors.php
    If you are learning PHP, developing PHP code, or debugging PHP code, do yourself a favor and check your web server log for errors and/or turn on full PHP error reporting in php.ini or in a .htaccess file to get PHP to help you.


Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts