2010-12-02 21 views
1

J'utilise cet addon d'assistance copy directory pour l'assistant d'annuaire pour m'aider à copier des fichiers à différents endroits sur mon serveur Web.Utilisation de Copy Directory Helper dans Codeigniter pour copier et déplacer des fichiers

Fonctionne parfaitement si les fichiers à partir desquels vous copiez et le dossier dans lequel vous copiez se trouvent dans le répertoire d'installation de CodeIgniter. J'ai toutefois mon installation de codeigniter dans un sous-répertoire (http://domain.com/site) et j'aimerais pouvoir déplacer et copier des répertoires dans le répertoire racine.

directory_copy('./user_guide/', './test_copy/'); 

Crée test_copy et copie le contenu de user_guide.

Toutefois, ce faisant (avis disparus DOT (.) Dans le répertoire de destination)

directory_copy('./user_guide/', '/test_copy/'); 

Causes

A PHP Error was encountered 

Severity: Warning 

Message: mkdir() [function.mkdir]: Permission denied 

Filename: helpers/directory_helper.php 

Line Number: 91 
A PHP Error was encountered 

Severity: Warning 

Message: mkdir() [function.mkdir]: No such file or directory 

Filename: helpers/directory_helper.php 

Line Number: 91 
A PHP Error was encountered 

Severity: Warning 

Message: copy(/test_copy/helpers/cookie_helper.html) [function.copy]: failed to open stream: No such file or directory 

Filename: helpers/directory_helper.php 

Line Number: 99 
A PHP Error was encountered 

Severity: Warning 

Message: copy(/test_copy/helpers/string_helper.html) [function.copy]: failed to open stream: No such file or directory 

Filename: helpers/directory_helper.php 

Line Number: 99 

... etc pour chaque fichier dans le répertoire.

J'ai vérifié toutes les permissions et elles semblent correctes. Il semble que le script ne puisse pas s'exécuter en dehors de l'installation de CI.

Toute l'aide ou des conseils seraient appréciés

Merci,

Tim

Répondre

2

Sans . (dot) est font simplement référence à la racine du serveur /,
qui nécessitent racine la permission utilisateur pour ajouter un nouveau dossier.
L'utilisateur exécutant apache n'a pas assez d'autorisations dans ce cas.

Copiez simplement dans un autre dossier auquel l'utilisateur apache a accès et qui a les droits d'écriture.

+0

Bonjour, j'ai essayé votre suggestion mais même aller à un autre sous-répertoire ne fonctionne pas. Donc copier depuis http://domain.com/folder vers http://domain.com/folder2 ne fonctionne pas ... Certes, j'ai assez d'autorisations pour le faire ... d'autant plus que je suis capable de copier et de déplacer des fichiers avec succès mon installation CI "/ dossier" ??? – Tim

+0

@Tim - Veuillez utiliser le chemin absolu pour le dossier de destination ... comme le code que vous montrez, utilisez un chemin relatif qui pointe vers '/' .. revérifier? Sinon, comprenez ce que fait la fonction de copie CI ... – ajreal

+0

Merci. Votre suggestion m'a conduit sur la bonne voie. L'utilisation de $ _SERVER ['DOCUMENT_ROOT'] m'a finalement permis de partir !!! Salutations et bonne nuit! – Tim

0

application/config/config.php

Essayez d'ajouter la ligne suivante:

$config['sess_save_path'] = NULL; 

$config['sess_save_path'] = sys_get_temp_dir();