I'm having an issue with users uploading files with a Semi Colon in the file name.
I am currently using a script that replaces characters within the file name, however, when I try to add a ";" as invalid characters to replace, it is like the semi-colon just stops the script, as the file does not upload (no errors are displayed).
Here's the code I'm working with:
$valid_chars_regex = '.A-Z0-9_ !@#$%^&()+={}\[\],~`-';
$file_name = preg_replace('/[^'.$valid_chars_regex.']|\'.+$/i', "", basename($_FILES[$upload_name]['name']));
if (strlen($file_name) == 0 || strlen($file_name) > $MAX_FILENAME_LENGTH) {
HandleError("Invalid file name");
exit(0);
}
I tried placing the semi colon all over the place in the preg_replace function, but nothing seems to work.
How can I do this?