I have a bunch of movies that I’m trying to transfer from my CentOS server onto my Windows PC. But when I run them through this script they end up being corrupt. Is there something wrong with the script?
Thanks
$allFiles = glob("/var/www/html/ftp_pending/*"); // 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); foreach($allFiles as $singleFile) { // check if a file exist $path = "/"; //the path where the file is located $file = substr( $singleFile, strrpos( $singleFile, '/' )+1 ); $check_file_exist = $path.$file; //combine string for easy use // Returns an array of filenames from the specified directory on success or // FALSE on error. $contents_on_server = ftp_nlist($conn_id, $path); // Test if file is in the ftp_nlist array if (in_array($check_file_exist, $contents_on_server)) { echo "$file is already on FTP Server, no need to re-upload <br />"; } else { $localfile = '/var/www/html/'.$file.''; $remote_file = $file; // upload a file if (ftp_put($conn_id, $remote_file, $localfile, FTP_ASCII)) { echo "successfully uploaded $filen"; } else { echo "There was a problem while uploading $filen"; } }; } // remember to always close your ftp connection ftp_close($conn_id);
Advertisement
Answer
You’re trying to upload something other than a text-based file while using
(ftp_put($conn_id, $remote_file, $localfile, FTP_ASCII))
You should be using FTP_BINARY
instead of FTP_ASCII
since movies (and images) are binary files.