Bonsoir,
Je cherche à déplacer des images (avions-001, avions-002... et montagne-2009-001, montagne-2009-002...) contenues dans un dossier "images".
Vers des sous dossiers ("avions" et "montagne") contenus dans "images", qui devront être créés s'ils n'existent pas.
Le code marche très bien car les images sont déplacées vers les sous dossiers correspondants lorsque je fais un refresh de la page.
Or, si je fais un 2e refresh de la page, le message d'erreur suivant apparaît et je n'arrive pas à trouver d'où vient le problème:
( ! ) Warning: rename(C:/wamp64/www/devoir1_3/images/avions,C:/wamp64/www/devoir1_3/images/avions/avions): Le processus ne peut pas accéder au fichier car ce fichier est utilisé par un autre processus. (code: 32) in C:\wamp64\www\devoir1_3\class\Image.php on line 22
( ! ) Warning: rename(C:/wamp64/www/devoir1_3/images/montagne,C:/wamp64/www/devoir1_3/images/montagne/montagne): Le processus ne peut pas accéder au fichier car ce fichier est utilisé par un autre processus. (code: 32) in C:\wamp64\www\devoir1_3\class\Image.php on line 22
Voici le code en question.
index.php
contenu.php
config.php
Image.php
D'avance merci
Modifié par Gan3sh (11 Mar 2019 - 19:17)
Je cherche à déplacer des images (avions-001, avions-002... et montagne-2009-001, montagne-2009-002...) contenues dans un dossier "images".
Vers des sous dossiers ("avions" et "montagne") contenus dans "images", qui devront être créés s'ils n'existent pas.
Le code marche très bien car les images sont déplacées vers les sous dossiers correspondants lorsque je fais un refresh de la page.
Or, si je fais un 2e refresh de la page, le message d'erreur suivant apparaît et je n'arrive pas à trouver d'où vient le problème:
( ! ) Warning: rename(C:/wamp64/www/devoir1_3/images/avions,C:/wamp64/www/devoir1_3/images/avions/avions): Le processus ne peut pas accéder au fichier car ce fichier est utilisé par un autre processus. (code: 32) in C:\wamp64\www\devoir1_3\class\Image.php on line 22
( ! ) Warning: rename(C:/wamp64/www/devoir1_3/images/montagne,C:/wamp64/www/devoir1_3/images/montagne/montagne): Le processus ne peut pas accéder au fichier car ce fichier est utilisé par un autre processus. (code: 32) in C:\wamp64\www\devoir1_3\class\Image.php on line 22
Voici le code en question.
index.php
<?php
require('config.php');
require('class/Image.php');
require('contenu.php');
?>
contenu.php
<?php
$image = new Image();
$images = $image->getImages(IMAGE_DIR_PATH);
?>
<?php foreach ($images as $image) : ?>
<li><a href="<?php echo IMAGE_DIR_URL . $image ?>"><?php echo $image ?></a></li>
<?php endforeach ?>
config.php
<?php
define('WEB_DIR_NAME', 'devoir1_3');
define('IMAGE_DIR_NAME', 'images');
define('IMAGE_DIR_PATH', $_SERVER['DOCUMENT_ROOT'] .'/'. WEB_DIR_NAME .'/'. IMAGE_DIR_NAME .'/');
define('IMAGE_DIR_URL', 'http://' .$_SERVER['HTTP_HOST'] .'/'. WEB_DIR_NAME .'/'. IMAGE_DIR_NAME .'/');
?>
Image.php
<?php
class Image
{
public function getImages($image_dir)
{
if ($handle = opendir($image_dir))
{
while (false !== ($entry = readdir($handle)))
{
if ($entry != '.' && $entry != '..')
{
$images[] = $entry;
$explode_filename = explode('-', $entry);
if (!is_dir(IMAGE_DIR_PATH . $explode_filename[0]))
{
var_dump(IMAGE_DIR_PATH . $explode_filename[0]);
mkdir(IMAGE_DIR_PATH . $explode_filename[0]);
}
$oldname = IMAGE_DIR_PATH .$entry;
$newname = IMAGE_DIR_PATH .$explode_filename[0]. '/' .$entry;
rename($oldname, $newname);
}
}
}
closedir($handle);
return $images;
}
}
?>
D'avance merci
Modifié par Gan3sh (11 Mar 2019 - 19:17)