Envoi de fichier sur serveur
Résolu
catstrike
Messages postés
210
Date d'inscription
Statut
Membre
Dernière intervention
-
catstrike Messages postés 210 Date d'inscription Statut Membre Dernière intervention -
catstrike Messages postés 210 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je vous explique mon probléme il est simple je cherche à envoyer des fichiers sur mon serveur jsuqu'a la rien de difficile les 80% du boulot se passe bien j'ai un fichier admin.php sur mon serveur avec ce bout de code la :
<form name="formulaire_envoi_fichier" enctype="multipart/form-data" method="post" action="./upload.php">
<input type="file" name="fichier_choisi"><br />
<br>
<br>
<input type="submit" name="bouton_submit" value="Envoyer le fichier">
</form>
qui envoi comme vous pouvez le constatez sur un fichier upload.php qui contien ce bout de code la :
<?php
//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 uplaod:
$chemin = "./albums/" ;
if(copy($nomTemporaire, $chemin.$nomFichier))
echo("<br>l'upload a réussi") ;
else
echo("<br>l'upload a échoué") ;
}//fin if
else
{
echo("Vous n'avez pas choisit de fichier!!<br>") ;
echo("<a href=\"./choix_fichier.html\">Retour</a>") ;
}//fin else
j'usqu'ici aucun probléme le fichier s'envoi pas de soucil.
Vous me direz pourquoi je vous ennui ben c'est simple je souhaiterai que lors de l'envoi mon fichier soi renomé mais pas n'importe comment je souhaiterai qu'il s'incrémine sur les autres fichiers présent à la racine du dossier albums. Et tout cela numériquement si possible. lol j'en demande hein....
En gros quelque soit le nom de mon fichier je voudrais qu'il prenne pour nom une fois envoyé 5, 6,7 etc.....
esce possible ?
j'ai déjà remarqué que en fesant ceci :
$chemin = "./albums/5" ;
un 5 se met u début du nom du fichier par exemple si mon fichier c paysage.jpeg une fois envoyé sa deviendra 5paysage.jpeg pas vraiment ce que je recherche et si derriére j'envoi chat.jpeg ben sa sera aussi 5chat.jpeg vous voyez alors que j'aimerai que paysage.jpeg devienne 5.jpeg et chat.jpeg -> 6.jpeg etc....
Merci d'une aide éventuelle.
Je vous explique mon probléme il est simple je cherche à envoyer des fichiers sur mon serveur jsuqu'a la rien de difficile les 80% du boulot se passe bien j'ai un fichier admin.php sur mon serveur avec ce bout de code la :
<form name="formulaire_envoi_fichier" enctype="multipart/form-data" method="post" action="./upload.php">
<input type="file" name="fichier_choisi"><br />
<br>
<br>
<input type="submit" name="bouton_submit" value="Envoyer le fichier">
</form>
qui envoi comme vous pouvez le constatez sur un fichier upload.php qui contien ce bout de code la :
<?php
//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 uplaod:
$chemin = "./albums/" ;
if(copy($nomTemporaire, $chemin.$nomFichier))
echo("<br>l'upload a réussi") ;
else
echo("<br>l'upload a échoué") ;
}//fin if
else
{
echo("Vous n'avez pas choisit de fichier!!<br>") ;
echo("<a href=\"./choix_fichier.html\">Retour</a>") ;
}//fin else
j'usqu'ici aucun probléme le fichier s'envoi pas de soucil.
Vous me direz pourquoi je vous ennui ben c'est simple je souhaiterai que lors de l'envoi mon fichier soi renomé mais pas n'importe comment je souhaiterai qu'il s'incrémine sur les autres fichiers présent à la racine du dossier albums. Et tout cela numériquement si possible. lol j'en demande hein....
En gros quelque soit le nom de mon fichier je voudrais qu'il prenne pour nom une fois envoyé 5, 6,7 etc.....
esce possible ?
j'ai déjà remarqué que en fesant ceci :
$chemin = "./albums/5" ;
un 5 se met u début du nom du fichier par exemple si mon fichier c paysage.jpeg une fois envoyé sa deviendra 5paysage.jpeg pas vraiment ce que je recherche et si derriére j'envoi chat.jpeg ben sa sera aussi 5chat.jpeg vous voyez alors que j'aimerai que paysage.jpeg devienne 5.jpeg et chat.jpeg -> 6.jpeg etc....
Merci d'une aide éventuelle.
A voir également:
- Envoi de fichier sur serveur
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
7 réponses
//EDIT
Petit à petit l'oiseau fait son nid comme on dit lol
j'arive maintenant à renomé le fichier grace à l'ajout d'un compteur mais au passage le fichier perd son extention arf lol. j'ai rajouté ceci :
$tesvaleursretournees = "";
$compteur="";
$fd=opendir("./albums/Photos/slides/");
while ($fic=readdir($fd))
{
if (($fic!=".")&&($fic!=".."))
{
$tesvaleursretournees .= $fic . "&";
}
$compteur +=1;
}
closedir($fd);
$compteur =$compteur - 1;
//on vérifies que le champ est bien rempli:
if(!empty($_FILES["fichier_choisi"]["name"]))
{
//nom du fichier choisi:
$nomFichier = $compteur = $compteur++; ETC...
Comment faire pour ne pas perdre la précieuse extention au passage ? merci
Petit à petit l'oiseau fait son nid comme on dit lol
j'arive maintenant à renomé le fichier grace à l'ajout d'un compteur mais au passage le fichier perd son extention arf lol. j'ai rajouté ceci :
$tesvaleursretournees = "";
$compteur="";
$fd=opendir("./albums/Photos/slides/");
while ($fic=readdir($fd))
{
if (($fic!=".")&&($fic!=".."))
{
$tesvaleursretournees .= $fic . "&";
}
$compteur +=1;
}
closedir($fd);
$compteur =$compteur - 1;
//on vérifies que le champ est bien rempli:
if(!empty($_FILES["fichier_choisi"]["name"]))
{
//nom du fichier choisi:
$nomFichier = $compteur = $compteur++; ETC...
Comment faire pour ne pas perdre la précieuse extention au passage ? merci
tu peux essayer la chose suivante en modifiant un peu ton chemin et en améliorant légèrement le compteur :
normalement, ca rajoute l'extension a ton chemin, tout en verifiant qu'on prends pas la place d'un fichier déjà existant.
cordialement,
vaeylon
//vérifie le nom du dernier fichier $num_fichier=1; $chemin_upload="./albums/"; $fichier= $chemin.$num_fichier.".jpg" ; while(file_exists($fichier)){ $num_fichier++; } //chemin qui mène au dossier qui va contenir les fichiers uplaod: $chemin = "./albums/".$num_fichier.".jpg" ;
normalement, ca rajoute l'extension a ton chemin, tout en verifiant qu'on prends pas la place d'un fichier déjà existant.
cordialement,
vaeylon
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
tu stockes $compteur dans un fichier
ou tu prends la solution de relire les fichiers existants comme dans le post precedant
ou tu prends la solution de relire les fichiers existants comme dans le post precedant
Vous étes des dieux sa marche. voici donc aprés mixage des méthodes celle qui marche :
<?php
$tesvaleursretournees = "";
$compteur="";
$fd=opendir("./albums/Photos/slides/");
while ($fic=readdir($fd))
{
if (($fic!=".")&&($fic!=".."))
{
$tesvaleursretournees .= $fic . "&";
}
$compteur +=1;
}
closedir($fd);
$compteur =$compteur - 1;
$compteur = $compteur++;
//on vérifies que le champ est bien rempli:
if(!empty($_FILES["fichier_choisi"]["name"]))
{
//nom du fichier choisi:
$nomFichier = $compteur++ ;
//nom temporaire sur le serveur:
$nomTemporaire = $_FILES["fichier_choisi"]["tmp_name"] ;
//type du fichier choisi:
$typeFichier = $_FILES["fichier_choisi"]["type"];
if( !strstr($typeFichier, 'jpg') && !strstr($typeFichier, 'jpeg') && !strstr($typeFichier, 'bmp') )
{
exit("Le fichier n'est pas une image");
};
//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 uplaod:
$chemin = "./albums/Photos/slides/".$nomFichier.".jpg" ;
if(copy($nomTemporaire, $chemin))
echo("<br>l'upload a réussi") ;
else
echo("<br>l'upload a échoué") ;
}//fin if
else
{
echo("Vous n'avez pas choisit de fichier!!<br>") ;
echo("<a href=\"./choix_fichier.html\">Retour</a>") ;
}//fin else
<?php
$tesvaleursretournees = "";
$compteur="";
$fd=opendir("./albums/Photos/slides/");
while ($fic=readdir($fd))
{
if (($fic!=".")&&($fic!=".."))
{
$tesvaleursretournees .= $fic . "&";
}
$compteur +=1;
}
closedir($fd);
$compteur =$compteur - 1;
$compteur = $compteur++;
//on vérifies que le champ est bien rempli:
if(!empty($_FILES["fichier_choisi"]["name"]))
{
//nom du fichier choisi:
$nomFichier = $compteur++ ;
//nom temporaire sur le serveur:
$nomTemporaire = $_FILES["fichier_choisi"]["tmp_name"] ;
//type du fichier choisi:
$typeFichier = $_FILES["fichier_choisi"]["type"];
if( !strstr($typeFichier, 'jpg') && !strstr($typeFichier, 'jpeg') && !strstr($typeFichier, 'bmp') )
{
exit("Le fichier n'est pas une image");
};
//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 uplaod:
$chemin = "./albums/Photos/slides/".$nomFichier.".jpg" ;
if(copy($nomTemporaire, $chemin))
echo("<br>l'upload a réussi") ;
else
echo("<br>l'upload a échoué") ;
}//fin if
else
{
echo("Vous n'avez pas choisit de fichier!!<br>") ;
echo("<a href=\"./choix_fichier.html\">Retour</a>") ;
}//fin else