Cómo crear una carpeta en PHP si aún no existe
¡Hola a todos! Soy un desarrollador PHP principiante y estoy escribiendo un sitio en WordPress. Tengo un problema: quiero guardar las imágenes subidas por los usuarios en una carpeta separada para cada usuario. Por ejemplo, tengo un ID de usuario y quiero crear una carpeta como `/uploads/user_123/`.
Escribí este código:
```php
$user_id = 123;
$upload_dir = wp_upload_dir();
$user_folder = $upload_dir['basedir'] . '/user_' . $user_id . '/';
if (!file_exists($user_folder)) {
mkdir($user_folder);
}
// Luego copio el archivo...
move_uploaded_file($temp_file, $user_folder . '/avatar.jpg');
```
Pero el problema es que si la carpeta ya existe, `mkdir()` muestra una advertencia "Warning: mkdir(): File exists". Entiendo que esto se puede suprimir con `@`, pero he oído que es una mala práctica.
¿Cómo crear correctamente una carpeta en PHP si aún no existe, sin errores ni advertencias? ¿Quizás hay una forma más confiable que mi solución con `file_exists()`? ¿Y qué hacer si se necesita crear una estructura de carpetas anidadas?
No answers yet.
Inicia sesión para dejar una respuesta