Upload de fichiers dans répertoire spécifique

Fermé
tomy2904 Messages postés 324 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 20 avril 2013 - 19 déc. 2011 à 18:02
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 21 déc. 2011 à 21:24
Bonjour,

voilà je vous explique ce qu'il se passe : j'aimerais uploader des fichiers (grâce à un formulaire d'upload) dans un répertoire spécifique (portant le nom de l'utilisateur connecté). Vous vous doutez que le nom du répertoire doit changer à chaque fois car l'utilisateur change. Or dans mon code php je peux mettre que mon lien absolu :

$chemin = "./" ;

j'aimerais donc changer ce chemin par le nom de mon répertoire qui change a chaque utilisateur...

Voici un bout de code de ma fonction qui crée mon répertoire :
<?
function creer_rep($nom)
{
$nom = ""; // Le nom du répertoire à créer

// vérifie si le répertoire existe :
if (is_dir($nom)) {
echo 'Le répertoire existe déjà!';
}
// création du nouveau répertoire
else {
mkdir($nom);
echo 'Le répertoire '.$nom.' vient d\'être créé!';
}
}

?>

Je rappelle ensuite cette fonction lors de l'inscription pour créer le repertoire portant le nom du login :

creer_rep("./".$login);

J'espère que vous saurez m'aider, merci d'avance!

A voir également:

9 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
19 déc. 2011 à 18:33
petite remarque en passant

utilises le tag <?php au lieu de <? cela t'évitera des soucis en php5

ensuite pour créer ton rep il faut que tu lui donne le chemin relatif par rapport à ton script php

ex: si ton script est dans le rep
/scripts_php/upload_fichiers.php
et que tes rep à creer sont dans
/fichiers_uploades/toto,titi,tata

$chemin_relatif='../fichiers_uploades';

creer_rep($chemin_relatif.'/'.$login);


et attention protèges ton $login par htmlentitie($_POST['login'] par exemple
0
tomy2904 Messages postés 324 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 20 avril 2013 29
19 déc. 2011 à 18:43
Merci alain, en fait un répertoire est créé pour chaque login, donc si je m'inscrit avec Tom comme login, un dossier (répertoire) est créé automatiquement avec comme nom "tom" -> php/tom (dans ce cas)

Le prob c'est que ces login changent (si je me connecte avec un autre login le repertoire n'est plus le même) et je ne sais pas quoi mettre dans mon code pour uploader le fichier pour que ce nom de répertoire change par rapport au login...

-> $chemin = "./" ; (que mettre pour remplacer le ./ ?)

Merci!
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
19 déc. 2011 à 19:19
he bien:

$chemin = "./'.$login
0
tomy2904 Messages postés 324 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 20 avril 2013 29
19 déc. 2011 à 20:02
Merci, j'ai essayé et j'ai ce message d'erreur :

Notice: Undefined variable: login in php\fileupload.php on line 18

Et la ligne 18 est : $chemin = "./.$login";

Je ne trouve vraiment pas :/ Merci quand même de votre aide!

Ps: le fichier s'upload mais dans le répertoire courant (php/) et non dans le répertoire associé au login...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
19 déc. 2011 à 20:34
$login je pensait que tu l'avait

par
$login=$_POST['login'];
0
tomy2904 Messages postés 324 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 20 avril 2013 29
20 déc. 2011 à 18:34
Tjs le même problème, voici mon code php d'upload :

"<?php
ob_start(); // ***
//on vérifies que le champ est bien rempli:
if(!empty($_FILES["fichier_choisi"]["name"]))
{
//nom du fichier choisi:
$nomFichier = $_FILES["fichier_choisi"]["name"] ;
//nom temporaire sur le serveur:
$nomTemporaire = $_FILES["fichier_choisi"]["tmp_name"] ;
//type du fichier choisi:
$typeFichier = $_FILES["fichier_choisi"]["type"] ;
//poids en octets du fichier choisit:
$poidsFichier = $_FILES["fichier_choisi"]["size"] ;
//code de l'erreur si jamais il y en a une:
$codeErreur = $_FILES["fichier_choisi"]["error"] ;

//chemin qui mène au dossier qui va contenir les fichiers upload:
$login=$_POST['login'];
$chemin = "./$login";

if(copy($nomTemporaire, $chemin.$nomFichier))
{ // Permet d'afficher le message suivant et d'actualiser la page après 5 secondes
echo("<h2><b><br /><br /><br /><br />Upload réussi!!! <br /><br />Vous êtes redirigé automatiquement sur votre espace membre...</b></h2>") ;
header('Refresh: 5; url=membre.php');
ob_flush(); } // ***
else
echo("<br>l'upload a échoué") ;
}//fin if
else
{
echo("Vous n'avez pas choisit de fichier!!<br>") ;
echo("<a href=\"./membre.php\">Retour</a>") ;
}//fin else

?> "

Je ne comprends pas...
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
20 déc. 2011 à 22:53
il manque une /

$chemin = "./$login";

if(copy($nomTemporaire, $chemin.$nomFichier))

essayes comme ça:
$chemin = "./".$login."/";

if(move_uploaded_file($nomTemporaire, $chemin.$nomFichier)) 
0
tomy2904 Messages postés 324 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 20 avril 2013 29
21 déc. 2011 à 19:20
Ok merci je vais essayer mais petite question: je le mets où le dernier "if" ( if(move_uploaded_file($nomTemporaire, $chemin.$nomFichier)) ) ?

Merci!
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
21 déc. 2011 à 21:24
à la place de if(copy...
0