Upload files to a server via FTP using PHP
PHP
<?php
if (array_key_exists('upload', $_POST)) {
$conn = ftp_connect("ftp.mydomain.com") or die("could not connect");
ftp_login($conn, "example@domain.com", "password");
$path = dirname($_SERVER['PHP_SELF']);
$fullpath = ftp_chdir($conn, "server-path/domain.com/html/" . $path . "/directory");
$localfile = $_FILES['thefile']['tmp_name'];
$file = strtolower(str_replace(' ', '-', $_FILES['thefile']['name']));
$filename = date('Y-m-d-His') . '-' . $file;
$upload = ftp_put($conn, $filename, $localfile, FTP_BINARY);
// check upload status
/* ========================================================================================== */
if ($upload) { $feedback = 'File has been uploaded'; }
else { $feedback = 'No file was uploaded, please select a file to proceed.'; }
// save file path and file-name to cookies for later use
/* ========================================================================================== */
$uploaded_file = 'directory/' . $filename;
if (isset($_FILES['thefile'])) {
setcookie("uploaded_file", $uploaded_file, time()+600, "/"); // exp 10 min
setcookie("filename", $filename, time()+600, "/"); // exp 10 min
}
ftp_close($conn);
}
?>
HTML
<form action="<?php echo basename(__FILE__); ?>" enctype="multipart/form-data" method="post">
<fieldset>
<input type="hidden" name="MAX_FILE_SIZE" value="<?php echo (1048576*10); ?>" />
<input type="file" name="thefile" />
<input type="hidden" name="uploaded_file" value="<?php echo $uploaded_file; ?>" />
<input type="hidden" name="filename" value="<?php echo $filename; ?>" />
<input type="submit" name="upload" value="upload" />
</fieldset>
</form>
<?php echo $feedback; ?>