EnvoAvatar : téléchargement d'images impossible
-
- Inscrit en : 06.12.03
- Dernière visite : 15.08.09
- Messages : 4294967292
Bien qu'ayant donné les droits d'acces au répertoire images/avatar (chmod 777)
Je ne parvients toujours pas à télécharger des images.
J'ai re-téléchargé la version 1.1 et ré-installé, mais rien ne change.
Le chemin que j'ai rentré dans la configue est : ../images/avatar. J'ai aussi testé avec d'autres chemin(./images/avatar;/images/avatar;images/avatar), hélas toujours rien.
J'utilise PostNuke 0.750 sur un serveur SME, mais je ne connais pas grand chose au PHP.
Aurais-tu une solution?
Florianbfr
-
- Rang : Site Admin
- Inscrit en : 06.12.03
- Dernière visite : 25.02.10
- Messages : 274
puisque tu as bien modifié les droits d'accès en 777, il ne fait pas de doute que ton problème est bien un problème de chemin. Chez moi tout se passe bien avec juste images/avatar mais je sais que suivant la config du serveur tout n'est pas aussi simple. Sur certains serveurs windows il a fallu mettre le "vrai" chemin d'accès au répertoire (un truc du style "c:\dossier/sousdossier/images/avatar" sur certains serveurs linux le chemin en partant du home de l'utilisateur (un truc du style home/nom_util/public_html/images/avatar) sur d'autres encore le chemin par rapport à la racine du serveur web (un truc du style public_html/postnuke/images/avatar)
en un mot c'est la galère !!!
Il faut que je regarde comment guider l'utilisateur lors de la configuration. -
- Rang : Site Admin
- Inscrit en : 06.12.03
- Dernière visite : 25.02.10
- Messages : 274
Pour t'aider à résoudre ton problème, tu peux essayer d'ajouter les lignes :
Code
$openbasedir = ini_get('open_basedir');
echo '<tr><td>Your PHP server has "open_basedir" set to:</td><td> '. $openbasedir . '</td></tr>';
$currentdir = dirname(__file__);
echo '<tr><td>EnvoAvatar is installed in:</td><td> ' . $currentdir . '</td></tr>';
$avatardir = pnModGetVar('EnvoAvatar', 'diravatar');
echo '<tr><td>Current directory to upload avatars:</td><td>' . $avatardir . '</td></tr>';
if ($avatardir) {
if (!is_dir($avatardir) || !is_writable($avatardir) || !$avatardir) {
echo '<tr><td colspan="2"><font color="#FF0000">'
. '<i>This is not a directory, or this folder is not writable'
. ' by the webserver. Please check the permissions'
. '</i></font></td></tr>';
} else {
echo '<tr><td colspan="2"><font color="#00FF00">'
. '<i>The webserver is able to write to this folder'
. '</i></font></td></tr>';
}
}
dans le fichier modules/EnvoAvatar/admin.php file juste avant les lignes:
Code
echo "<tr><td valign=\"top\"><b>"._ADMAVATAR5.": </b></td><td>"
."<input type=text size=25 maxlength=50 name=\"xdiravatar\" value=\""
.pnModGetVar('EnvoAvatar','diravatar')
."\" ><b>default:</b> "._ADMAVATAR6."</td>"
."</tr>"
Cela écrira à l'écran le répertoire de base, le répertoire où est le module et si le répertoire que tu as choisi est autorisé en écriture. Peut-être cela te donnera-t-il des idées de chemin à essayer
PS: Pardon, j'ai codé cela très vite, et j'ai oublié que ta demande était en français, j'ai donc mis tous les messages en anglais dans le code, la force de l'habitude ... désolé -
- Inscrit en : 06.12.03
- Dernière visite : 15.08.09
- Messages : 4294967292
Ok, merci beaucoup, je regarde, je teste et te tiens au courant.
Quand à l'anglais, this not a big problem. I don't speake very well but i can anderstand.
-
- Inscrit en : 06.12.03
- Dernière visite : 15.08.09
- Messages : 4294967292
Voici le résultat obtenu:
Your PHP server has "open_basedir" set to: /home/e-smith/files/ibays/Primary
EnvoAvatar is installed in: /home/e-smith/files/ibays/Primary/html/modules/EnvoAvatar
Current directory to upload avatars: images/avatar
The webserver is able to write to this folder
Mais j'obtiens toujours l'ERROR6 -
- Rang : Site Admin
- Inscrit en : 06.12.03
- Dernière visite : 25.02.10
- Messages : 274
Bon la phrase "The webserver is able to write to this folder" me laisse penser que ton chemin est correct est que c'est la fonction copy du php qui a un problème. Donc on va essayer une autre stratégie : si ton php n'est pas trop ancien, ouvre modules/envoAvatar/index.php et remplace les lignes
Code
par:
Code
$id=pnUserGetVar('uid');
if (!move_uploaded_file($uploadfile['tmp_name'], "$pathavatar/pers_$id.$ext")) {
$err=6;
}
if ($pathphpbb!=''){
if (!move_uploaded_file($uploadfile['tmp_name'], "$pathphpbb/pers_$id.$ext")) {
$err=7;
}
}
Et dis moi si çà marche. -
- Inscrit en : 13.10.05
- Dernière visite : 13.10.05
- Messages : 1
Ok, SUPER !!!
avec ce code ça fonctionne !!!
Un tres grand merci à toi pour ton aide et tes compétences en PHP
vraiment tres cool de ta part. Je ne manquerais pas de mettre un lien vers ton site.
Il se peut que j'ai d'autres questions à l'avenir et je sais que l'on peut compter sur toi.
@+
Utilisateurs en ligne
- 7 visiteurs
Données pour les 15 dernières minutes








