2009-10-07 5 views
0

J'essaie de lire et de poster dans le navigateur un fichier téléchargé avec le mécanisme du framework zend.zend framework: impossible d'accéder au fichier qui est déjà là

Le fichier a été téléchargé correctement à l'endroit désiré et comme je l'ai vérifié par

su www-data 

et après ls et un chat, l'internaute peut le lire et le modifier correctement.

le problème est que l'intérieur d'un contrôleur lorsque je tente de:

if(!file_exists($fileName)) { 
die("File ($fileName) wasnt set or it didnt exist"); 
} 

Je suis toujours en venir mourir (...), bien que le $ fileName est une chaîne et quand j'afficher son emplacement que je peux toujours (comme indiqué précédemment) le lire depuis la ligne de commande.

ls sortie:

$ ls -lah 
total 112K 
drwxr-xr-x 2 www-data www-data 4.0K 2009-10-07 18:21 . 
drwxr-xr-x 3 www-data www-data 4.0K 2009-10-07 13:57 .. 
-rw-r--r-- 1 www-data www-data 70K 2009-10-07 17:33 Eclipse_Icon_by_TZR_observer.png 
-rw-r--r-- 1 www-data www-data 27K 2009-10-07 18:24 eclipse_logo2.png 

sortie Stat:

stat() [function.stat]: stat failed for .../eclipse_logo2.png 

j'ai vu une question très similaire au site "essayer pendant 30 jours", il est donc pas quelque chose qui me est arrivé ...

Des idées?

+0

1. pouvez-vous envoyer la sortie ls -l file.ext ou stat ($ fileName)? 2. pouvez-vous poster la question similaire à la "essayer pendant 30 jours" – eveliotc

+0

définitivement: ajouté que le corps de la question –

+0

Pour la deuxième question: Non, il est un "registre premier forum" et je ne veux vraiment pas vous inscrire là ... –

Répondre

0

Vous devez chmod le fichier nouvellement créé car le propriétaire du fichier créé du côté PHP sera Apache (groupe: www-data, httpd, www, ou quelque chose de similaire). Donc la prochaine fois que PHP ne pourra pas accéder au fichier parce que www-data le possède et qu'il a de mauvaises permissions.

Here's how you create new files so that you can access them later. 
<?php 
$path = '/path/to/new/file'; 
touch($path) 
chmod($path, 0777); 
// TRY to change group, this usually fails 
@chgrp($path, filegroup(__FILE__)); 
// TRY to change owner, this usually fails 
@chown($path, fileowner(__FILE__)); 
+0

Merci il est évident que c'est un problème d'autorisations, je vais l'essayer et informera ASAP ... –

+0

Considéré comme correct, car il y avait aussi un problème d'autorisations. Quel était le vrai problème après cela: J'avais oublié de rogner le résultat du postgresql, ayant comme entrée non seulement le nom de fichier mais aussi un grand nombre d'espaces de fin. Le réel-correctif était donc un appel de compensation (...). –