No puedo abrir un archivo

Tengo un pequeño problemilla con la apertura de un archivo en un script php. El caso es que el script me funciona bien en local (utilizo el XAMPP para poder ejecutar los scrips de php) pero cuando subo al servidor el script funciona pero no consigo abrir un archivo. Al final he creado un documento que solamente hace la carga del archivo y ni aún así funciona:
<?php
$archivo=fopen("archivo.csv","r") or die ("No se pudo abrir el archivo");
echo 'Documento cargado con éxito'
?>
He probado a cambiar de sitio el archivo (actualizando la ruta, por supuesto), el nombre y hasta la extensión pero ni aún así me funciona, supongo que se tratará de alguna cosa de configuración pero no tengo ni idea de qué puede ser. Te repito para que lo tengas en cuenta que en local me funciona todo bien y en el servidor el resto del script funciona bien pero no la carga del archivo.

1 respuesta

Respuesta
1
Ten en cuenta exactamente donde esta ubicado el archivo que estás tratando de abrir. En el ejemplo que me muestras, el archivo "archivo.csv" debería estar ubicado en el mismo directorio que el script que lo abre. Lo otro que puedes revisar son los permisos del archivo para saber si te lo deja leer. En unix debes tener algo como 644.
Si, como dices me he fijado en la ubicación del archivo y la ruta especificada en la sentencia y estoy seguro de que está todo bien (ni te imaginas la de combinaciones absurdas que he probado por el mero hecho de probar algo), estoy convencido de que no está relacionado con esto ya que en local, con el mismo árbol de directorios sí que funciona.
En cambio la otra solución que comentas si que es la que creo que debe ser, pero no controlo del tema de los permisos y todo eso. ¿Dónde lo puedo ver? ¿Cómo lo puedo cambiar? ¿Lo he de cambiar yo personalmente o el servidor? Ya te digo que no controlo nada en este aspecto.
Un saludo.
Si tienes acceso al servidor directamente y si es linux puedes listarlo con el comando
ls -l
te sale algo como
drwxr-xr-x 4 root root 4096 2009-01-05 15:40 backup_economista
-Rw-r--r-- 1 diseno diseno 828525 2008-12-15 10:37 cm245845.sql
-Rw-r--r-- 1 root root 8848605 2009-01-20 14:24 localidades.sql
las primeras columnas indican los permisos estilo unix, así -rw-r--r-- indica que es unarchivo de lectura y escritura para el usuario, de lectura para el grupo del usuario y de lectura para los demás usuarios.
esta información también la puedes obtener ejecutando el mismo comando en php
echo `ls -l`;
Directamente desde el directorio
O si es un servidor windows
Echo `dir`
Bien, me puse a enredar con lo de los permisos y no conseguí nada, estaban como tú me decías y aún así nada, los puse todos en rw y nada, me volví loco. ¿Al día siguiente todo funcionaba bien como en local O.O? ¿
No lo entiendo, quizá fuera cosa del server o vete tú a saber, en cualquier caso ahora todo funciona bien
Gracias por tu consejo, un saludo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas