Je viens de trouvé la fonction rename() qui et superbe car en plus de déplacer le fichier elle me permet de le renommer.
rename("album/$names","album/$name/$titre.jpg");
Sauf que j'obtient l'erreur suivante:
Warning: rename(album/3jyiro05.jpg ,album/chat/chat_002.jpg) <a href='function.rename'>function.rename</a>]: La syntaxe du nom de fichier, de répertoire ou de volume est incorrecte. (code: 123) in C:\wamp\www\tuto\upload\index.php
je remet le script en entier si sa peut aider:
<h1><br>Ajouter un titre</h1>
<form method="post" action="index.php">
<label for="name" >Nom de l'artiste</label><br>
<input type="text" name="name" id="name" ><br>
<br>
<label for="title" >Titre</label><br>
<input type="text" name="tile" id="title" ><br>
<br>
<?php
if(isset($_GET) && !empty($_GET) && $_GET'mode']== "dir"){
echo '<label for="file" >Upload par un dossier</label><br><input type="file" name="file" id="file" size="50" />
<p><a href="?mode=">Annuler</a></p>';
}else{
echo '<label for="url" >Upload par URL</label><br><input type="text" name="url" id="url" size="50" /><br>
<p><a href="?mode=dir" >Uploadé depuis un dossier</a></p>';
}
?>
<br><br>
<input name="submit" type="submit" /><br>
</form>
<?php
if(isset($_POST) && !empty($_POST)){
if(isset($_POST'name'])){
$name = $_POST'name'];
if(is_dir("album/".$name)){
}
else{
mkdir("album/".$name, 0700);
}
}
if(isset($_POST'tile'])){
$titre = $_POST'tile'];
}
// maximum execution time in seconds
set_time_limit ( 24 * 60 * 60 ) ;
if (!isset($_POST'submit'])) die() ;
$destination_folder = 'album/';
$url = $_POST'url'] ;
$newfname = $destination_folder . basename ( $url ) ;
$names = basename($newfname).PHP_EOL;
$file = fopen ( $url , "rb" ) ;
if($file ){
$newf = fopen ( $newfname , "wb" ) ;
}
if ( $newf ){
while ( ! feof ( $file ) ){
fwrite ( $newf , fread ( $file , 1024 * 8 ) , 1024 * 8 ) ;
}
}
if ( $file ) fclose ( $file ) ;
if ( $newf ) fclose ( $newf ) ;
rename("album/$names","album/$name/$titre.jpg");
}
?>