Upload de fichiers dans répertoire spécifique
tomy2904
Messages postés
324
Date d'inscription
Statut
Membre
Dernière intervention
-
Alain_42 Messages postés 5361 Date d'inscription Statut Membre Dernière intervention -
Alain_42 Messages postés 5361 Date d'inscription Statut Membre Dernière intervention -
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!
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:
- Upload de fichiers dans répertoire spécifique
- Explorateur de fichiers - Guide
- Youtube upload - Télécharger - Diffusion
- Renommer des fichiers en masse - Guide
- Fichiers epub - Guide
- Gestionnaire de fichiers - Télécharger - Gestion de fichiers
9 réponses
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';
et attention protèges ton $login par htmlentitie($_POST['login'] par exemple
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
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!
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!
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...
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...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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...
"<?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...
il manque une /
$chemin = "./$login";
if(copy($nomTemporaire, $chemin.$nomFichier))
essayes comme ça:
$chemin = "./$login";
if(copy($nomTemporaire, $chemin.$nomFichier))
essayes comme ça:
$chemin = "./".$login."/"; if(move_uploaded_file($nomTemporaire, $chemin.$nomFichier))