Telecharger un fichier dans un repertoire cree a la volee

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Telecharger un fichier dans un repertoire cree a la volee

Re: Telecharger un fichier dans un repertoire cree a la volee

par tekkpaf » 25 mars 2010, 17:21

Le dossier est 777 et le copy() comme move_uploaded-file ne fonctionne pas. Root n'est pas propriétaire du répertoire.

Re: Telecharger un fichier dans un repertoire cree a la volee

par devlop78 » 25 mars 2010, 02:18

J'ai la flemme de lire toutes les réponses, alors essaie juste à la place de move, une fonction de type copy. Php refuse peut-être non pas que tu mettes un fichier dans ton répertoire, mais que tu essaies d'effacer celui de /tmp. A part ça, si root est propriétaire de ton répertoire, change d'hébergeur. Tu peux aussi essayer de mettre le répertoire qui contient les répertoire en chmod 777. A+

Re: Telecharger un fichier dans un repertoire cree a la volee

par tekkpaf » 19 mars 2010, 15:26

Y a-t-il quelqu'un dans le coin ?

Re: Telecharger un fichier dans un repertoire cree a la volee

par tekkpaf » 12 mars 2010, 17:52

C'est encore moi, juste pour dire je suis chez OVH. Mais quand je fais ce genre de manip chez SFR, ca marche.

Re: Telecharger un fichier dans un repertoire cree a la volee

par tekkpaf » 12 mars 2010, 17:40

Bonjour tout le monde, je me permet de relancer ce post car j'ai exactement le même problème mais avec un copy().
Je crée un répertoire avec mkdir($nom, 0777) et ensuite je veux copier deux fichier depuis un dossierModele vers ce nouveau répertoire. Je fais donc copy('dossierModele/index.php', $nom.'/index.php') mais la copie ne s'effectue pas!!
merci d'avance

Re: Telecharger un fichier dans un repertoire cree a la volee

par Sékiltoyai » 24 août 2009, 19:44

Bon, Nagol est revenu, il aura peut être un avis, sinon, à titre exceptionnel, on règlera ça par MSN.

Re: Telecharger un fichier dans un repertoire cree a la volee

par _DaWid_ » 24 août 2009, 16:55

L'operation de creation a la volee a ete mise de cote au vu de ses differents pbs mais ca me titille tout de meme. J'aimerais bien trouver la solution.

Pour repondre a la question de Sékiltoyai (il me semble d'ailleurs y avoir repondu) j'ai essaye plusieurs combinaisons pour le repertoire parent : root, apache, nobody et rien n'y a fait.
J'ai tjs la meme erreur au niveau de la fonction move_uploaded_file qui me renvoie false.

Pour que le mkdir fonctionne, il faut que le repertoire proprietaire soit root. A ce moment-la , il me cree bien un sous-repertoire toto avec apache comme proprio.
Et de fait, le probleme se repercute dans le process de creer un fichier sous ce sous-repertoire toto. Il faudrait que root soit le proprio de toto.

Un veritable casse-tete qui n'en est plus un maintenant pour moi mais qui je suis sur donc ennuyer pas mal de programmeurs !

Concernant l'histoire des 2 serveurs, l'un est la prod et l'autre l'environnement de test, mais tu as raison, ne travaillons que sur un seul.

Re: Telecharger un fichier dans un repertoire cree a la volee

par Sékiltoyai » 21 août 2009, 17:55

Oui il veut pouvoir placer ou déplacer un fichier dans un dossier qui n'a pas les bons droits !
Donc, avec cette fonction, et en utilisant un compte FTP root par exemple, il pourra faire ce qu'il veut lorsque l'internaute fera l'upload du fichier sur le serveur.
Euh, rassure moi, tu as vraiment ton compte root accessible par FTP ? :shock:

Et je pense qu'une vraie solution, à savoir une solution qui règle réellement les problèmes de droit, justement sans utiliser FTP, et encore moins avec un compte root, est de loin préférable…

Re: Telecharger un fichier dans un repertoire cree a la volee

par Iris » 21 août 2009, 17:33

Oui il veut pouvoir placer ou déplacer un fichier dans un dossier qui n'a pas les bons droits !
Donc, avec cette fonction, et en utilisant un compte FTP root par exemple, il pourra faire ce qu'il veut lorsque l'internaute fera l'upload du fichier sur le serveur.

Re: Telecharger un fichier dans un repertoire cree a la volee

par Sékiltoyai » 21 août 2009, 17:20

J'utilise cette fonction par ftp qui fonctionne très bien pour moi. Définir bien sur les bonnes constantes CLIENT_FTP_NAME, etc...
Mmh, avant de répondre, es-tu sûr d'avoir bien lu le sujet ?

Re: Telecharger un fichier dans un repertoire cree a la volee

par Iris » 21 août 2009, 15:25

J'utilise cette fonction par ftp qui fonctionne très bien pour moi. Définir bien sur les bonnes constantes CLIENT_FTP_NAME, etc...
function changemode($path = '', $xcite) {
	$ftp_details = array(
	ftp_user_name => CLIENT_FTP_NAME,
	ftp_user_pass => CLIENT_FTP_PASS,
	ftp_user_root => CLIENT_FTP_ROOT,
	ftp_server => CLIENT_FTP_SERVER 
	);
	$mod = intval($xcite, 8);
	extract ($ftp_details);
	$conn_id = ftp_connect($ftp_server);
	$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
	if (ftp_site($conn_id, 'CHMOD '.$mod.' '.$ftp_user_root.$path) !== false) {
	   $success=TRUE;
	}
	else {
	   $success=FALSE;
	}
	ftp_close($conn_id);
	return $success;
}

changemode('un_dossier', 777);
/*
Opérations
*/
changemode('un_dossier', 755);

Re: Telecharger un fichier dans un repertoire cree a la volee

par Sékiltoyai » 21 août 2009, 14:14

C'est normal, le chown n'est utilisable que par le propriétaire. Tu trouverais ça noraml de pouvoir changer les droits de fichiers qui ne t'appartiennnent pas ?

Quels sont les groupe et propriétaire du répertoire parent à celui que tu essayes de créer ?

En guise de test, réduit ton code php au strict minimum :
- Le mkdir pour la création du répertoire (éventuellement agrémenté de chmods)
- Un touch à l'intérieur du répertoire
Refais tes tests et poste ton code de test et tes résultats. Mets aussi le error_reporting à E_ALL | E_STRICT en PHP5, E_ALL en PHP4.

Tu dis que tu as plusieurs serveurs, ne travaille que sur un seul, en donnant toutes les informations déjà citées (user et group du serveur, que tu trouveras dans la conf apache), le mode d'exécution de php (handler, cgi, fastcgi, isapi, ou suexec).

Voilà, et avec ça on devrait avancer :)

Re: Telecharger un fichier dans un repertoire cree a la volee

par _DaWid_ » 21 août 2009, 11:25

J'ai fait des essais en mettant en groupe et en proprietaire root puis apache. Ca n'a rien fait.

C'est un serveur dedie et je fais les modifs par ssh.

Concernant le message d'erreur, j'ai essaye sur 2 serveurs dedies differents et j'ai soit rien (mais la fonction chown renvoie FALSE), soit operation not permitted d'apres ce que je me rappelle.
J'ai verifie la config apache et sur ces 2 serveurs le SAFE_MODE est a OFF.

Re: Telecharger un fichier dans un repertoire cree a la volee

par Sékiltoyai » 20 août 2009, 19:35

le proprietaire de ce repertoire parent
Qui est ?
Et le groupe, c'est quoi ?

C'est un hébergement mutualisé ou dédié ?
Tu essayes de modifier les droits via ftp ou ssh ?
Quand tu dis que tu ne peux pas changer le propriétaire, quelle est l'erreur ?

Re: Telecharger un fichier dans un repertoire cree a la volee

par _DaWid_ » 20 août 2009, 17:35

Les droits du repertoire parent sont 777.
J'ai essaye de changer le proprietaire de ce repertoire parent a apache ou bien a root mais rien n'y fait.