Moves an uploaded file to a new location.
PHP's move_uploaded_file() does not properly support streams if safe_mode or open_basedir are enabled, so this function fills that gap.
Compatibility: normal paths and stream wrappers.
$filename: The filename of the uploaded file.
$uri: A string containing the destination URI of the file.
TRUE on success, or FALSE on failure.
function drupal_move_uploaded_file($filename, $uri) {
$result = @move_uploaded_file($filename, $uri);
// PHP's move_uploaded_file() does not properly support streams if safe_mode
// or open_basedir are enabled so if the move failed, try finding a real path
// and retry the move operation.
if (!$result) {
if ($realpath = drupal_realpath($uri)) {
$result = move_uploaded_file($filename, $realpath);
}
else {
$result = move_uploaded_file($filename, $uri);
}
}
return $result;
}