Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 2 of 2
  1. #1
    Regular Coder
    Join Date
    Apr 2007
    Posts
    144
    Thanks
    5
    Thanked 0 Times in 0 Posts

    Download to local after ftp_get()

    I am using ftp_get to transfer a file from a secure location, to a temp location. (working)

    Once at the temp location i need to have the file automatically download to the clients local machine. Something like a right click "save as" action. How do i do this? I'm thinking its done with headers but not sure.

    My Current Code is below. Thanks for all responses.

    Code:
     
    // define some variables
    $ftp_server = "123.45.67.890";
    $local_file = '/scratch1/test/'.$name;
    $server_file = $name;
     
    echo "server file: $server_file <br>";
     
    $ftp_user_name = "5a515";
    $ftp_user_pass = "m5n5o5";
     
    // 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);
     
    if ($login_result) echo "Successfully connected<br>";
     
    //change directory
    ftp_chdir($conn_id, "tts");
    ftp_chdir($conn_id, "incoming");
     
    // try to download $server_file and save to $local_file
    if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)){
     
        echo "Successfully written to $local_file\n";
     
    }else{
     
        echo "<br>There was a problem\n";
    }
     
    // close the connection
    ftp_close($conn_id);

  • #2
    Regular Coder
    Join Date
    Apr 2007
    Posts
    144
    Thanks
    5
    Thanked 0 Times in 0 Posts
    This is the solutions. Thanks to NogDog.
    Code:
    // try to download $server_file and save to $local_file
    if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)){
        header('Content-Length: '. filesize($local_file));
        header('Content-Type: application/octet-stream');
        header('Content-Disposition: attachment; filename="'.basename($local_file).'"');
        header('Content-Transfer-Encoding: binary');
        header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
        readfile($local_file); // send the file
        exit;  // make sure no extraneous characters get appended
    }


  •  

    Posting Permissions

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