es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

No se pudo abrir el archivo cargado: Permiso denegado en XAMPP MacOS

Estaba intentando subir un archivo usando php a mi local utilizando XAMPP en MacOS. Cada vez que intentaba subir un archivo a través de un script, obtenía este error.

move_uploaded_file – No se pudo abrir el flujo: Permiso denegado.

Así que probé algunas soluciones que encontré en Internet, como chmod -R 777, cambiando el grupo de usuarios e intentando dar permiso de lectura y escritura a todos los usuarios; Ninguna de ellas funcionó.

Este es el código que estoy utilizando para la subida:

if(!empty($filename)){
    $ext = pathinfo($filename, PATHINFO_EXTENSION);
    $new_filename = $slug.'_'.time().'.'.$ext;
    if(!move_uploaded_file($_FILES['eventImage']['tmp_name'], '../assets/images/events/'.$new_filename))
    {
        $_SESSION['error']='<strong>Error!</strong> Fallo al subir la imagen. Por favor, intenta de nuevo.';
    }   
}
else{
    $new_filename = '';
}

Quiero saber cómo se puede solucionar este error. Creo que se trata de problemas de seguridad en MacOS.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que el mensaje de error “move_uploaded_file – Failed to open stream: Permission denied” indica que hay un problema de permisos con la carpeta en la que estás intentando subir el archivo. A pesar de intentar varias soluciones, aún no has logrado resolver el problema.

    Una posible solución alternativa para este error es cambiar la propiedad de la carpeta donde deseas subir el archivo. Puedes intentar cambiar el propietario de la carpeta a tu usuario actual utilizando el siguiente comando en tu Terminal:

    sudo chown -R $(whoami) /ruta/a/la/carpeta

    Reemplaza /ruta/a/la/carpeta por la ruta real de la carpeta para la cual deseas cambiar la propiedad.

    Otra solución sería otorgar los permisos necesarios a la carpeta editando el archivo httpd.conf de Apache.

    Abre el archivo httpd.conf en un editor de texto (por ejemplo, sudo nano /etc/apache2/httpd.conf) y busca las directivas User y Group. Cambia los valores para que coincidan con tu usuario y grupo, por ejemplo:

    User nombre-de-usuario
    Group www
    

    Guarda y cierra el archivo. Luego, reinicia Apache ingresando el siguiente comando en tu Terminal:

    sudo apachectl restart

    Esperemos que esto resuelva el problema de permisos y te permita subir archivos a través de tu script de PHP.

Comments are closed.