Files
friendshiptours.org/php/functions/func_file.php
2015-11-12 19:58:50 -06:00

58 lines
1.7 KiB
PHP

<?php
################################################ FUNCTION: file_process_upload #
function file_process_upload($input_name,$save_path,$overwrite = false,$replace_regex = "/[^A-Za-z0-9]+/")
{
$no_errs = true;
$clean_names = array();
if(!is_dir($save_path))
{
trigger_error('Path is not a directory.',E_USER_ERROR);
return false;
}
if(!is_array($_FILES[$input_name]['tmp_name']))
{
foreach($_FILES[$input_name] as $key => $value)
$_FILES[$input_name][$key] = array($_FILES[$input_name][$key]);
}
foreach($_FILES[$input_name]['tmp_name'] as $key => $value)
{
if(!is_uploaded_file($_FILES[$input_name]['tmp_name'][$key]))
{
$no_errs = false;
trigger_error('File "'.$_FILES[$input_name]['name'][$key].'" is not an uploaded file.',E_USER_ERROR);
}
$clean_name = $_FILES[$input_name]['name'][$key];
# find the extension
preg_match("/(\.\S+)$/",$clean_name,$matches);
$ext = $matches[1];
# take the extension off of the file name
$clean_name = str_replace($ext,'',$clean_name);
$clean_name = preg_replace($replace_regex,'_',$clean_name);
# move the uploaded file to the new location, unless a file with the same name
# is already there
if(file_exists($save_path.'/'.$clean_name.$ext) and !$overwrite)
{
$no_errs = false;
trigger_error('File "'.$_FILES[$input_name]['name'][$key].'" already exists.', E_USER_ERROR);
}
if(move_uploaded_file($_FILES[$input_name]['tmp_name'][$key],$save_path.'/'.$clean_name.$ext))
array_push($clean_names,$clean_name.$ext);
else
{
$no_errs = false;
trigger_error('File "'.$_FILES[$input_name]['name'][$key].'" could not be moved to permanent location.', E_USER_ERROR);
}
}
if(count($clean_names) == 1)
return($clean_names[0]);
else
return($clean_names);
}
?>