PHP ftp_put fails

前端 未结 2 1299
挽巷
挽巷 2020-12-06 20:17

I upload XML file through FTP:

$ftp = \"ftp\";
$username = \"username\";
$pwd = \"password\";
$filename = $_FILES[$xyz][$abc];
$tmp = $_FILES[\'file\'][\'tmp         


        
相关标签:
2条回答
  • 2020-12-06 20:49

    Most typical cause of problems with ftp_put (or any other transfer command like ftp_get, ftp_nlist, ftp_rawlist, ftp_mlsd) is that PHP defaults to the active mode. And in 99% cases, one has to switch to the passive mode, to make the transfer working. Use the ftp_pasv function.

    $connect = ftp_connect($ftp) or die("Unable to connect to host");
    ftp_login($connect, $username, $pwd) or die("Authorization failed");
    // turn passive mode on
    ftp_pasv($connect, true) or die("Unable switch to passive mode");
    

    See also:

    • PHP ftp_put fails with "Warning: ftp_put (): PORT command successful"
    • my article on the active and passive FTP connection modes.
    0 讨论(0)
  • 2020-12-06 20:58

    This worked:

    // connect and login to FTP server
    $ftp_server = "host";
    $ftp_username = "username";
    $ftp_userpass = "password";
    $ftp_conn = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
    $login = ftp_login($ftp_conn, $ftp_username, $ftp_userpass);
    $file ="$abc";
    
    // upload file 
    if (ftp_put($ftp_conn, "/$abc" , $file, FTP_ASCII)){
        echo "Successfully uploaded $file.";
    } else {
        echo "Error uploading $file";
    }
    
    // close connection
    ftp_close($ftp_conn); 
    
    0 讨论(0)
提交回复
热议问题