I'm trying to upload a file via ftp_put to a windows server.
my code is as follows:
    $date           = date('ymd');
    $file_name      = $date.'.csv';
    $file_location  = 'D:/inetpub/wwwroot/website.com/html/assets/'.$file_name;
//set up basic connection
$conn_id = ftp_connect(FTP_HOST, FTP_PORT);
// login with username and password
$login_result = ftp_login($conn_id, FTP_USER, FTP_PASS);
// check connection
if ((!$conn_id) || (!$login_result)) { 
    echo "FTP connection has failed!"; 
    exit;
}  else { 
    echo "Connected to FTP Server";
}
$upload = ftp_put($conn_id, $file_name, $file_location, FTP_ASCII);
// check upload status
if (!$upload) { 
    echo "FTP upload has failed!"; 
} else { 
    echo "File Uploaded";
}
// close the FTP stream 
ftp_close($conn_id); 
If I upload the file manually using filezilla, it works perfectly. If I use the code above, it creates an empty file.
Try transferring the file with passive mode enabled:
Passive Mode
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With