[RESOLU] Supprimer une image si elle est pas enregistrée dans la BDD

Eléphant du PHP | 386 Messages

11 janv. 2014, 01:20

Bonjour,

J'aimerais créer le script d'une tâche CRON (utilisable avec mon hébergeur).
Elle vérifierai si dans un dossier du serveur, les images sont utilisées dans la base de données.
Si elle n'est pas utilisée, elle est supprimée.

J'utilise un formulaire d'upload avec un textarea et le champ de l'image est facultative (NULL)
Le problème c'est que je fais un preview avant de publier le texte et l'image, sauf que l'image se trouve déjà sur le serveur.

Donc si le membre actualise sans publier, elle encombrera mon espace disque.
C'est pour ça qu'une tâche CRON qui s’exécute à chaque 3h du matin par exemple, pourrait supprimer les images inutiles.

Le problème c'est que je sais supprimer une image du serveur avec unlink();
Mais pour vérifier que l'image est inutilisée, je bloque :(

Voici le script d'upload, appelé en ajax :
<?php
session_start();
require('../../include/config.inc.php');

$valid_exts = array('jpeg', 'jpg', 'png');
$max_size = 2000 * 2000;
$path = 'upload/';

if(!empty($_FILES['filename'])){
	$ext = strtolower(pathinfo($_FILES['filename']['name'], PATHINFO_EXTENSION));
	if(in_array($ext, $valid_exts) AND $_FILES['filename']['size'] < $max_size){
		$path = $path . uniqid(). '.' .$ext;
		if(move_uploaded_file($_FILES['filename']['tmp_name'], $path)){

?> 
<img src="img/loaderImg.gif" height="48" width="48" id="loaderStatutImg" alt="" />
<img src="users/ajax/<?php echo $path; ?>" height="150" width="200" class="loadImg" style="display:none;" alt="" />
<input type="hidden" name="statut_img" class="inputStatutImg" value="<?php echo $path; ?>" />
<script type="text/javascript">$('#loaderStatutImg').show();$('.loadImg').on('load',function(){$('#loaderStatutImg').hide();$(this).fadeIn('fast');});</script>
<?php
		}
	} else {
		echo '<span class="errorUpload">Invalid file!</span>';
	}
} else { ?><script type="text/javascript">$('#preview').hide();</script><?php } ?>


PS : ce post rejoins le problème de celui-ci : php-debutant/message-confirmation-formu ... 70033.html

Merci d'avance

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

11 janv. 2014, 14:56

salut,

j'ai avancé une réponse pour le système dans le précédent message ;)

@+
Il en faut peu pour être heureux ......