2009-06-23 13 views
6

Sto lavorando con un sistema di memorizzazione nella cache dell'immagine che genera immagini diverse in base a un percorso di URL. Le immagini di origine vivono al di fuori della radice del documento e le versioni memorizzate nella cache vengono aggiunte a/cache nel webroot. Per farla breve, in Flash, se indico un Loader al percorso, viene visualizzato un errore "Caricamento completato mai" la prima volta (se l'immagine memorizzata nella cache non è stata ancora generata).Actionscript [Errore # 2036: caricamento mai completato] con immagini generate dinamiche

Error opening URL 'http://characters.dev/cache/Pledges/16107/48_48c/jen001.jpg' 
Error #2036: Load Never Completed. URL: http://characters.dev/cache/Pledges/16107/48_48c/jen001.jpg 

L'immagine memorizzata nella cache viene comunque generata e la volta successiva che eseguo l'applicazione il file effettivo viene caricato senza errori. Ho le intestazioni corrette che vengono inviate quando si genera l'immagine iniziale e la si scrive, quindi mi chiedo perché Flash non riceve la risposta (sembra funzionare bene in una finestra del browser).

header("Content-type:image/jpeg"); 
echo $this->getResponse()->setBody(file_get_contents($cachedFile)); 

Qualche idea su come risolvere questo problema? Gli errori sembrano "impantanarsi" nell'applicazione flash.


Se aiuta, ecco le intestazioni di risposta:

Richiesta di generare immagine:

HTTP/1.1 200 OK 
Date: Tue, 23 Jun 2009 17:52:49 GMT 
Server: Apache 
X-Powered-By: PHP/5.2.6 
Expires: Thu, 19 Nov 1981 08:52:00 GMT 
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 
Pragma: no-cache 
Set-Cookie: PHPSESSID=6b746d4ed010c288a824522597698ea2; expires=Fri, 24-Jul-2009 17:52:50 GMT; path=/; domain=.characters.dev 
Content-Length: 3575 
Content-Type: image/jpeg 

richiesta quando l'immagine viene memorizzata nella cache:

HTTP/1.1 200 OK 
Date: Tue, 23 Jun 2009 17:53:27 GMT 
Server: Apache 
Last-Modified: Tue, 23 Jun 2009 17:52:50 GMT 
ETag: "24e6c62-df7-a8bd0080" 
Accept-Ranges: bytes 
Content-Length: 3575 
Content-Type: image/jpeg 

risposta

2

problema IDE Flash sembra. Non è davvero risolvibile.

+2

Scusa ma ... cosa significa questa "risposta"? In che modo l'IDE può causare un errore nel lettore? – brianvaughn

2

I stava diventando g un problema analogo, per fermare l'errore che appare si desidera prendere l'IOErrorEvent.IO_ERROR

_loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioError_handler, false, 0, true); 

public function ioError_handler(event:IOErrorEvent):void 
{ 
    Alert.show(event.toString()); 
} 

Mentre questo è sbarazzato dell'errore, alcune delle immagini in cui non viene caricata in Opera. Alla fine ho avuto questo lavoro modificando il codice del gestore di immagini (asp.net C#) per

context.Response.ClearContent(); 
context.Response.ClearHeaders(); 
context.Response.ContentType = "image/jpg"; 
context.Response.Cache.SetCacheability(HttpCacheability.NoCache); 
context.Response.Cache.SetNoStore(); 
context.Response.Cache.SetExpires(DateTime.MinValue); 
context.Response.BufferOutput = false; 
context.Response.BinaryWrite(photo); 

prima, quando ho cercato di visualizzare l'immagine nel browser foto caricherebbe, ma non sarebbe finire caricamento in Opera, quindi non licenziare l'evento carico completo.

Spero che questo aiuti, (anche se è in una lingua diversa)

+0

Hmm, sì, ho un listener per IO_ERRORs (l'output che ho postato è il risultato dell'avviso che mostri). E sto impostando le intestazioni allo stesso modo. Non sono sicuro. Gli errori non sembrano essere lanciati quando l'oggetto Flash è nel browser, quindi forse è solo una cosa IDE. – typeoneerror

Problemi correlati