Supprimer un fichier lorsque l'on quitte une page web

deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 - 11 août 2009 à 14:57
pysco68 Messages postés 681 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 21 août 2014 - 12 août 2009 à 17:54
Yop à tous,

Voila je voulai savoir comment je pourrai faire pour supprimer un fichier qui ce situe sur le serveur de mon hébergeur lorsque je quitte une page web. En fait j'ai fait un sorte que l'on visualise une image d'un fichier zip, donc j'affiche ce que contient le zip et lorsque un visiteur clique sur le lien, j'extrait l'image (donc je crée le fichier sur le serveur) et lorsque je quitte la page, je voudrait que cela supprime le fichier. On ma conseilé d'utilisé JS pour catcher l'unload de la page et appeler ensuite un script php. Est-ce la meilleur solution?

Merci d'avance.

++
deck_bsd
___________________________________
http://deck-bsd.eurower.net

7 réponses

pysco68 Messages postés 681 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 21 août 2014 8
11 août 2009 à 23:19
La meilleure solution serait de ne pas créer le fichier sur le disque... ou du moins que temporairement...

Au lieu d'envoyer le liens en dur tu pourrais extraire l'image, la charger dans un script php qui l'envoi vers le navigateur (en gros ce script il joue à l'image ^^) et qui le supprime de nouveau.

Il y a quelques temps j'avais aidé quelqu'un avec un problème similaire:
http://www.phpcs.com/infomsg_JE-CHERCHE-PEU-AIDE_986058.aspx

vers la fin de la premiere page il y tout ce qu'il devrait te falloir ;)

Bonne soirée,
Cordialement Pysco68

[hr]
PPT: Petit programmeur tranquille =) | Agence Web | Pysco68 was here
0
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
12 août 2009 à 11:59
Yop,

Merci pour ta réponse. J'ai bien été voir tes post et effectivement je comprend ce que tu fait, mais tu me dis qu'il serait bien de ne pas créer le fichier , hors dans ton script pour charger l'image il y besoin d'un fichier , et donc il est forcément crée sur le disque, donc je ne voi pas trop ce que ça change , il faudra quand mm le supprimer à la fin. A moin que ce que tu veuilles dire est qu'on l'extrai, on le crée donc sur le serveur, on s'en sert pour loader l'image et on le supprime car le code de l'imge sera sur la page et donc plus besoin de catcher le déchargement de la page, c'est bien cela l'idée ?

++
deck_bsd
___________________________________
http://deck-bsd.eurower.net
0
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
12 août 2009 à 14:51
re ,

Voila j'ai fait comme cela :

<?php
$zipname = $_GET['zipfile'];
$picname = $_GET['picname'];

// Extraction :
$zip = new ZipArchive;
$path = "../images/guest/";
$path = $path . $zipname;
$res = $zip->open($path);
if ($res === TRUE) {
echo "nom de la photo : " . $picname;
echo "nom du zip" . $zipname;
$zip->extractTo('../imgzip/',$picname);
$zip->close();

sleep(2);
// Création de l'image :
$pathimg = "../imgzip/";
$pathimg = $pathimg . $picname;
$image = base64_encode(file_get_contents($pathimg));;
header("Content-type: image/jpg");  // C'est une image jpg
//Affichage :
echo "";

}
?>


Alors il m'extract bien l'image mais n'affiche pas mon image sur l'écran. Une idée ?
++
deck_bsd
___________________________________
http://deck-bsd.eurower.net
0
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
12 août 2009 à 16:09
C'est bon j'ai réussi, génial ton truc,

ouai en fait j'avai pas capter tout de suite que pour que la page ce comporte en image il ne fallait que une portion de code dans un script php.

++
deck_bsd
___________________________________
http://deck-bsd.eurower.net
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
12 août 2009 à 16:17
Heu juste un dernier truc si je met ceci ensuite :

$image = base64_encode(file_get_contents($_GET['pathimage']));
   header("Content-type: image/jpg");
   unlink($pathimg);
   echo base64_decode($image);


dans la page il ne m'affiche plus l'imge hors pourtant on à récupérer le contenut du fichier ont peut le supprimer normalement non ?


++
deck_bsd
___________________________________
http://deck-bsd.eurower.net
0
pysco68 Messages postés 681 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 21 août 2014 8
12 août 2009 à 17:50
Re,

désolé de pas avoir pu revenir plus vite... bon alors je vois que t'a compris ou je vuolais en venir, je pense même que tu peux te passer de créer le fichier sur le disque a l'aide de la fonction http://us2.php.net/manual/en/function.ziparchive-getstream.php qui te permet de lire le tout en flux de bits...

DOnc plus besoin de créer et de supprimer le tout ;)

Bonne journée!

P.S.: l'histoire du base_64 c'était just pour pouvoir stoquer l'image comme chaine dans un fichier PHP a l'époque ;)

[hr]
PPT: Petit programmeur tranquille =) | Agence Web | Pysco68 was here
0
pysco68 Messages postés 681 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 21 août 2014 8
12 août 2009 à 17:54
Euh me revoilà just... enfait en relisant le liens que je viens de te donner y a a la solution que tu a besoins "texto" dedans....

 header("Content-type: image/jpg");  // Change le tyme mime de ta sortie
$im = imagecreatefromjpeg('zip://' . "chemin/vers/ton/ZIP" . '/tonzip.zip#fichier.jpg'); // Va extraire le fichier et en fait un objet "image"
imagejpeg($im);  // Fais la sortie et l'envoie dans le buffer

imagedestroy($im); // Faire un peux de place dans la RAM


[hr]
PPT: Petit programmeur tranquille =) | Agence Web | Pysco68 was here
0
Rejoignez-nous