una subir servidor para multiples guardarlos formulario ejemplo directorio con codigo carpeta archivos archivo php special-characters

servidor - subir archivos php mysql



Reemplace los caracteres especiales antes de cargar el archivo usando PHP (5)

Puede obtener el nombre de archivo original para un archivo cargado desde $_FILES , y puede crear su versión "especial" reemplazando los caracteres en ella con strtr (que suena como la mejor coincidencia para este caso), str_replace , preg_replace o cualquier otro proceso de cadena función.

El mejor enfoque depende de lo que exactamente quieres hacer.

Me preguntaba si es posible cambiar el nombre del archivo que se va a cargar. Quiero decir que lo que estoy tratando de hacer es que el usuario carga un archivo que puede tener algunos caracteres especiales como caracteres especiales en algunos idiomas europeos.

Lo que planeo hacer es que antes de usar el comando move_uploaded_file es posible cambiar / preg_replace los caracteres especiales con caracteres normales, para que el archivo se cargue y se almacene con el nuevo nombre que tiene solo caracteres normales.


Puedes hacerlo así, escribe una función simple strip_special_chars() para reemplazar los caracteres que deseas en una cadena

$tmp_name = $_FILES["file"]["tmp_name"]; $name = strip_special_chars($tmp_name); move_uploaded_file($name, "path/to/dir/");


También puedes usar una función para caracteres especiales como este:

function safename($theValue) { $_trSpec = array( ''Ç'' => ''C'', ''Ğ'' => ''G'', ''İ'' => ''I'', ''Ö'' => ''O'', ''Ş'' => ''S'', ''Ü'' => ''U'', ''ç'' => ''c'', ''ğ'' => ''g'', ''ı'' => ''i'', ''i'' => ''i'', ''ö'' => ''o'', ''ş'' => ''s'', ''ü'' => ''u'', ); $enChars = array_values($_trSpec); $trChars = array_keys($_trSpec); $theValue = str_replace($trChars, $enChars, $theValue); $theValue=preg_replace("@[^A-Za-z0-9/-_.//]+@i","-",$theValue); $theValue=strtolower($theValue); return $theValue; }

Tenga cuidado de no permitir. para la extensión de archivo.

Y luego cambie su nombre de archivo temporal original,

$tempFile = $_FILES[''Filedata''][''tmp_name'']; $targetFile = safename($targetFile); $location = ''path/to/dir/''; move_uploaded_file($_FILES["file"]["tmp_name"], $location.$targetFile);



// Get the original file name from $_FILES $file_name= $_FILES[''file''][''name'']; // Remove any characters you don''t want // The below code will remove anything that is not a-z, 0-9 or a dot. $file_name = preg_replace("/[^a-zA-Z0-9.]/", "", $file_name); // Get the location of the folder to upload into $location = ''path/to/dir/''; // Use move_uploaded_file() move_uploaded_file($_FILES["file"]["tmp_name"], $location.$file_name);