I have tried in many ways to upload files using FTP functions in PHP. But it is not working for me. I don't know what mistake I made in this code. I have given the local file path or another server file path also, but in both cases it is not working. I have given my code below. Can anyone help to find my problem?
/* Source File Name and Path */
$backup_file = '/var/www/html/artbak/assets/uploads/edi/test.txt';
//$backup_file = '/workspace/all-projects/artbak/assets/uploads/edi/test.txt';
$remote_file = $backup_file;
$ftp_host = 'hostname'; /* host */
$ftp_user_name = 'username'; /* username */
$ftp_user_pass = 'password'; /* password */
/* New file name and path for this file */
$local_file = '/public_html/example.txt';
/* Connect using basic FTP */
$connect_it = ftp_connect( $ftp_host );
/* Login to FTP */
$login_result = ftp_login( $connect_it, $ftp_user_name, $ftp_user_pass );
/* Download $remote_file and save to $local_file */
if ( ftp_put( $connect_it, $local_file, $remote_file, FTP_BINARY ) ) {
echo "WOOT! Successfully written to $local_file\n";
}
else {
echo "Doh! There was a problem\n";
}
/* Close the connection */
ftp_close( $connect_it );
The below code is working for local to server upload, but not working for server to server upload. It shows the server not connecting. Please give some ideas guys. I am struggling in more in this concept.
$ftp_host = 'hostname'; /* host */
$ftp_user_name = 'username'; /* username */
$ftp_user_pass = 'password'; /* password */
// set up a connection or die
$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");
// login with username and password
$login_result = ftp_login($conn_id, $ftp_user, $ftp_pass);
$file = "dummy.txt";
$remote_file = "receiveDummy.txt";
// upload a file
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
echo "successfully uploaded $file\n";
} else {
echo "There was a problem while uploading $file\n";
}
// close the connection
ftp_close($conn_id);
Thanks for your support guys. I am happy to post this answer couple of days work. Only the thing is need to avoid the destination server path /public_html/test.txt
instead of test.txt
. If you have any sub folders give like sample/test.txt
. Kindly check the below code, it is use full for some one like me.
/* Source File Name and Path */
$remote_file = '/var/www/html/artbak/assets/uploads/edi/test.txt';
$ftp_host = 'hostname'; /* host */
$ftp_user_name = 'username'; /* username */
$ftp_user_pass = 'password'; /* password */
/* New file name and path for this file */
$local_file = 'test.txt';
/* Connect using basic FTP */
$connect_it = ftp_connect( $ftp_host );
/* Login to FTP */
$login_result = ftp_login( $connect_it, $ftp_user_name, $ftp_user_pass );
/* Download $remote_file and save to $local_file */
if ( ftp_put( $connect_it, $local_file, $remote_file, FTP_BINARY ) ) {
echo "WOOT! Successfully written to $local_file\n";
}
else {
echo "Doh! There was a problem\n";
}
/* Close the connection */
ftp_close( $connect_it );
And one thing is in my server had some firewall block, for that reason only first ftp not connecting via php code. Now i solve that issue also. Because my code working in local to server already know. For that i referred the below link to solve the firewall block in server, Can't connect to FTP with PHP ftp_connect from localhost . So it is working well.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.