Envoyé par : alien7
Date : 25/05/2008 13:58
Bonjour, Est il possible d'utiliser le cache du navigateur, j'aimerai copié, deplacé une image depuis le cache sans avoir à l'utiliser puisqu'il se trouve dans le cache du navigateur.
J'ai du mal à trouver la doc dessus.
Merci
Envoyé par : Paul Rouget
Date : 26/05/2008 15:03
XulPlanet: http://www.xulplanet.com/references/xpco(..)
MXR: http://mxr.mozilla.org/mozilla/source/ne(..) (fichier permettant d'afficher about:cache).
Envoyé par : alien7
Date : 27/05/2008 11:26
Bon je commence à comprendre un peu comment marche tout ca. J'ai une erreur avec nsICacheEntryDescriptor qui a un attribut file, qui doit me retourner un type nsIFile. Voici mon code :
try{ var session = CacheService.createSession( entry.clientID, ICache.STORE_ANYWHERE, entry.isStreamBased() ); var descriptor = session.openCacheEntry( entry.key, ICache.ACCESS_READ, false ); alert(descriptor.file.leafName); return descriptor; } finally { descriptor && descriptor.close(); }
Et voici l'erreur retourné :
Erreur : uncaught exception: [Exception... "Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsICacheEntryDescriptor.file]" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)"
Lorsque je fais about:cache, pour un lien j'ai une propriété : file on disk: none Et quand je vais dans le dossier cache de firefox je ne vois pas les fichiers images ou autres. Firefox ne met rien en cache ? Et monerreur est peut etre du à ca non ?
Envoyé par : Paul Rouget
Date : 27/05/2008 15:33
Ce n'est pas qu'il met rien en cache, c'est simplement que ce n'est pas betement représenté sous forme de fichier. Après, je ne sais pas. Regarde comment about:cache fonctionne.
Envoyé par : alien7
Date : 27/05/2008 15:50
Dans la doc on voit bien que nsICacheEntryDescriptor a un Attribut file de type nsIFile : Get the disk file associated with the cache entry. http://developer.mozilla.org/en/docs/nsICacheEntryDescriptor
Donc je ne comprends pas pourquoi j'ai l'erreur plus haut.
J'ai du mal avec les sources de about:cache, je ne connais pas très bien le c++.
Envoyé par : Paul Rouget
Date : 27/05/2008 16:31
Si tu veux récupérer le contenu "caché" d'un fichier, il te suffit d'utiliser la méthode openInputStream: http://www.xulplanet.com/references/xpco(..) Je n'ai pas testé, mais je pense qu'il suffit de rediriger ce stream sur un nsIFileOutputStream, et hop, tu auras copier le contenu du fichier.
Envoyé par : alien7
Date : 30/05/2008 12:19
Mais je me pose une question d'utiliser ou pas le cache si je ne peu xpas copier l'image depuis la memoire plutot. Ce que je veux faire c'est copier une image lors d'une visite sur une page, normalement l'image se trouve dans la memoire non ? Donc je peux la copier directement depuis la memoire.
C'est possible, si oui comment ? En vous remerciant d'avance.
Envoyé par : alien7
Date : 30/05/2008 12:38
Ah peut etre que si je dois utiliser le cache pour ca, en specifiant le device STORE_IN_MEMORY surement.
Mais est ce qu'on peut le faire sans passer par le cache ? Y'a pas plus simpl epour ce" que je veux faire ?
Envoyé par : Paul Rouget
Date : 04/06/2008 10:07
Il y a plusieurs type de cache. Celui que tu veux, c'est celui en mémoire. Ce que je proposais fonctionnera quand même.
Envoyé par : alien7
Date : 05/06/2008 13:13
Voilà, ca marche avec openInputStream. J'ai enfin réussi, désolé je ne bosse pas à plein temps sur mon ptit projet d'ou ce retard. Voilà c'est donc résolu. Et encore merci beaucoup M.Rouget :)
Il n'est plus possible de poster des messages dans ce forum.
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.