Salut !
Bon, ba pour mon premier post sur le forum, je vient vous demander une aide concernant un script php...
Je le dis franchement, PHP n'est pas (encore) mon domaine...
En fait, j'ai développé une application web en AS3 qui permet d'envoyer des fichiers dont l'extension est restreint, grâce à la méthode fileReference pour ceux qui connaissent
Donc, mon raisonnement serait le suivant :
1-Le client choisi le fichier à uploader
2-Le fichier est passé de mon application à un script PHP
3-Le script PHP compte le nombre de fichiers se trouvant dans le dossier
4-Il renome le fichier suivant la variable qui vaut le nombre de fichier +1
5-Il upload le fichier
Pour donner un peu plus d'infos, imaginons que dans mon dossier, se trouvent les fichiers "photo1.jpg" et "photo2.jpg"
Si bien que si le client upload, par exemple le fichier "maphoto.jpg", je désire que le script php le renomme en "photo3.jpg"
Voilà ou j'en suis dans le code :
<?php
$type = array ( 'jpg' ) ; // extension autoriser
$uploaddir = 'images/' ; // repertoire de destination
if ($_FILES['Filedata'])
{
$extension_fichier = strtolower( array_pop( explode( ".", $_FILES['Filedata']['name'] ) ) ) ;
// si cette extension ne se trouve pas dans notre tableau $type
if( !in_array( $extension_fichier, $type ) ) exit; // on stop le traitement
$uploadfile = $uploaddir . 'Photo'. strval(count(scandir($uploaddir))). '.jpg';
if ( move_uploaded_file( $_FILES['Filedata']['tmp_name'], $uploadfile ) ) return true ;
else return false ;
}
else return false ;
?>
Mais malheureusement, ça ne fonctionne pas...
Si quelqu'un pouvait me filer un coup de main, ça ne serait pas de refus
D'avance, merci !
----------------------------------------------------------
EDIT :
Je viens de trouver un code sur le forum qui est porté sur ce que je recherche, mais malheureusement, j'ai beau l'insérer dans mon code actuel, je n'est aucun résultat sur le FTP...
Voici le code récupéré :
<?php
//... On commence par isoler le nom de son extension
$fichier = explode(".", $mon_fichier);
// On récupère le nom:
$nom_fichier = $fichier[0];
$ext = $fichier[1];
// on crée un pointeur :
$i = 1;
// On va partir du principe qu'on aura jamais plus de 20 fichiers du même nom
for($i = 1; $i <= 20; $i++)
{
//On fait une concaténation et on vérifie si cette combinaison est disponible
if(!file_exists($nom_fichier.$i.".".$ext))
{
// Le nom est disponible, on l'affecte à notre nouvelle variable
$nouveau_fichier = $nom_fichier.$i.".".$ext;
// On peut quitter la boucle
break;
}
// Arrivé ici (else), la condition n'est pas bonne, le nouveau nom est utilisé, on reboucle
}
// On a maintenant un nom unique à attribuer avec $nouveau_ficher.
?>
----------------------------------------------------------
EDIT :
Bon, j'ai fini par trouver par moi même en cherchant sur de nombreux forums
Le solution, pour ceux qui sont intéressés :
<?php
$type = array ( 'jpg' ) ; // extension autoriser
$dossier = 'PhotosElevage/' ; // repertoire de destination
$nbPhotos = 0;
$tesvaleursretournees = "0";
$fd=opendir($dossier);
while ($fic=readdir($fd))
{
if (($fic!=".")&&($fic!=".."))
{
$tesvaleursretournees .= $fic . "&";
}
$nbPhotos +=1;
}
closedir($fd);
$nbPhotos -=1;
$fichier = 'Photo'.$nbPhotos.'.jpg';
if ($_FILES['Filedata'])
{
$extension_fichier = strtolower( array_pop( explode( ".", $_FILES['Filedata']['name'] ) ) ) ;
// si cette extension ne se trouve pas dans notre tableau $type
if( !in_array( $extension_fichier, $type ) ) exit; // on stop le traitement
$destination = $dossier . $fichier;
if ( move_uploaded_file( $_FILES['Filedata']['tmp_name'], $destination ) ){
return true ;
echo 'TRANSFERT OK';
}
else return false ;
}
else return false ;
?>