PHP upload

Pro upload souborů na server se obvykle používá funkce move_uploaded_file(), ale kvůli safe_mode to není možné. Omezení lze velmi jednoduše obejít využitím vestavěné funkce pro práci s FTP, kdy soubor z odkládacího adresáře webserveru jednoduše zkopírujete pomocí FTP.

Při uploadu je jméno nahrávaného souboru uloženo v proměnné $_FILES['userfile']['tmp_name']. Jméno stačí předat skriptu, jak je uvedeno např. na z http://cz.php.net/manual/en/ref.ftp.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);
?>