I have a web-application that allow users to upload images to my web site.
What I want to do is instead of hosting those images myself, I want to push those images off to my CDN (Cachefly).
Using PHP, I want to FTP an image from my server to another whenever a user uploads an image to my server.
However, I want to maintain the file structure path of my current server. Meaning, the file system plan locally is:
local: upload/YYYY/MM/DD/uniquefilename.jpg
So I want on my CDN for the image to be uploaded to:
cdn: upload/YYYY/MM/DD/uniquefilename.jpg
The problem is that the directory /YYYY/MM/DD might exist, or might not.
I'm using the following PHP code but this does not create the directories (/YYYY/MM/DD) when they are not currently present.
How do I FTP an image to a remote server while also maintain the file structure?
<?php
// 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);
// check connection
if ((!$conn_id) || (!$login_result)) {
echo "FTP connection has failed!";
echo "Attempted to connect to $ftp_server for user $ftp_user_name";
exit;
} else {
echo "Connected to $ftp_server, for user $ftp_user_name";
}
// upload the file
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);
// check upload status
if (!$upload) {
echo "FTP upload has failed!";
} else {
echo "Uploaded $source_file to $ftp_server as $destination_file";
}
// close the FTP stream
ftp_close($conn_id);
?>