2010-07-09 4 views
0

J'essaye de télécharger un dossier sur mon serveur using l'aide de forme de téléchargement de dossier de CakePHP.
Je cours actuellement CakePHP 1.3 sur mon ordinateur de développement (Mac OSX).
Lorsque le formulaire est soumis, il a dans les variables transmises au contrôleur son nom temporaire: /var/tmp/name, puis son nom comme nom du fichier.
Cependant, lorsque j'essaie de renommer le fichier en un emplacement plus permanent, il échoue et si je vais à l'emplacement, il n'existe pas.Le téléchargement de fichiers échoue mystérieusement dans CakePHP

Je reçois ces messages d'erreur:

Warning (2): move_uploaded_file(Users/chustar/Documents/IMAG0001.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory [APP/controllers/users_controller.php, line 41] 
Warning (2): move_uploaded_file() [function.move-uploaded-file]: Unable to move '/private/var/tmp/php98lzsP' to '/Users/chustar/Documents/IMAG0001.jpg' [APP/controllers/users_controller.php, line 41] 
Warning (2): Cannot modify header information - headers already sent by (output started at /Library/WebServer/Documents/cake/libs/debugger.php:673) [CORE/cake/ 
+0

Comment savez-vous qu'il échoue? Quel est le message d'erreur? –

+0

Je voudrais essayer de résoudre cette 3ème erreur: "Warning (2): Impossible de modifier les informations d'en-tête - les en-têtes déjà envoyés par (sortie démarrée à /Library/WebServer/Documents/cake/libs/debugger.php:673) [CORE/cake/"Cela peut simplement impliquer de désactiver quelque chose, pour le moment. Fondamentalement, vous voulez simplifier les choses, afin d'isoler la cause du problème. –

+1

La 3ème erreur est généralement le résultat des deux premiers. Les messages d'erreur sont affichés, ce qui crée la sortie qui empêche la modification des en-têtes. –

Répondre

2

-je obtenir cette erreur beaucoup quand je ne dispose pas des autorisations définies correctement sur le répertoire cible. À des fins d'illustration, je vais supposer que vous utilisez un serveur Web Apache et qu'il s'exécute en tant qu'utilisateur nommé www. Cet utilisateur www doit avoir un accès en écriture au répertoire cible. Ce n'est pas à propos de quelles permissions vous avez, mais quelles autorisations l'utilisateur du serveur Web a.

Si vous ne trouvez pas que c'est le problème, quelques détails supplémentaires et/ou du code peuvent être utiles.

+0

Écrit dans le dossier Mes documents pour des raisons de sonme. Donc, Apache n'avait pas d'autorisation d'écriture là-bas. Résolu. – chustar

Questions connexes