Transfer a File via PHP
I had an issue come up where GoDaddy shared hosting didn’t allow outbound FTP connections for backups, etc.. Helping someone migrate away from GoDaddy, I didn’t want to download 2 GB of data and re-upload, so threw this quick script together to make it happen:
<?php if(!@copy('http://source.com/thefile.bz2','./thefile.bz2')) { $errors= error_get_last(); echo "COPY ERROR: ".$errors['type']; echo "<br />\n".$errors['message']; } else { echo "File copied from remote!"; } ?>
If you want to do it via FTP, then this works well for plain-text GoDaddy remote connections:
<?php if(!@copy('ftp://UN:PW@SERVER/file/location/thefile.bz2','./thefile.bz2')) { $errors= error_get_last(); echo "COPY ERROR: ".$errors['type']; echo "<br />\n".$errors['message']; } else { echo "File copied from remote!"; } ?>
Let’s say you want to transfer via FTP between two servers while on a 3rd server.
<?php if(!@copy('ftp://UN:PW@SERVER-A/file/location/thefile.bz2','ftp://UN:PW@SERVER-B/file/location/thefile.bz2')) { $errors= error_get_last(); echo "COPY ERROR: ".$errors['type']; echo "<br />\n".$errors['message']; } else { echo "File copied from remote!"; } ?>