2009-06-23 4 views
6

मैं एक छवि कैशिंग सिस्टम के साथ काम कर रहा हूं जो यूआरएल मार्ग के आधार पर विभिन्न छवियां उत्पन्न करता है। स्रोत छवियां दस्तावेज़ रूट के बाहर रहते हैं और कैश किए गए संस्करण वेबूट में/कैश में जोड़े जाते हैं। फ्लैश में लंबी कहानी छोटी है, अगर मैं मार्ग पर Loader इंगित करता हूं, तो मुझे पहली बार "लोड कभी पूर्ण नहीं हुआ" त्रुटि मिलती है (यदि कैश की गई छवि अभी तक उत्पन्न नहीं हुई है)।एक्शनस्क्रिप्ट [त्रुटि # 2036: लोड कभी पूरा नहीं हुआ] गतिशील जेनरेट की गई छवियों के साथ

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 

कैश्ड छवि अभी भी उत्पन्न होता है और अगली बार मैं बिना किसी त्रुटि के आवेदन वास्तविक फ़ाइल लोड चलाते हैं। शुरुआती छवि उत्पन्न करते समय और इसे लिखते समय मुझे उचित हेडर भेजे जा रहे हैं, इसलिए मुझे आश्चर्य है कि फ़्लैश को प्रतिक्रिया क्यों नहीं मिल रही है (ब्राउज़र विंडो में ठीक काम करता है)।

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

इसे ठीक करने के तरीके पर कोई विचार? त्रुटियों को फ्लैश एप्लिकेशन "बग डाउन" लगता है।


यदि यह मदद करता है, यहाँ प्रतिक्रिया हेडर है:

उत्पन्न करने के लिए अनुरोध छवि:

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 

अनुरोध जब छवि कैश किया गया है:

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 

उत्तर

2

फ्लैश आईडीई मुद्दा ऐसा लगता है। वास्तव में ठीक नहीं है।

+2

क्षमा करें लेकिन ... यह "उत्तर" का क्या अर्थ है? आईडीई प्लेयर में त्रुटि क्यों उत्पन्न कर सकता है? – brianvaughn

2

मैं गेटिन था जी ने वही समस्या है, तो आप 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()); 
} 

इस जबकि त्रुटि से छुटकारा मिला, छवियों जहां ओपेरा में लोड नहीं से कुछ को पकड़ने के लिए चाहते प्रदर्शित होने त्रुटि को रोकने के लिए। अंत में मैं इस से पहले जब मैं ब्राउज़र तस्वीर लोड होगा में छवि को देखने की कोशिश की

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); 

करने के लिए छवि हैंडलर कोड (asp.net ग #) को बदलने के द्वारा काम करने के लिए मिल गया है, लेकिन यह खत्म नहीं होगा ओपेरा में लोड हो रहा है, इसलिए लोड पूर्ण घटना को फायर नहीं कर रहा है।

आशा इस मदद करता है, (भले ही वह किसी अन्य भाषा में है)

+0

हम्म, हाँ, मेरे पास IO_ERRORs के लिए श्रोता है (मैंने जो आउटपुट पोस्ट किया है वह आपके द्वारा दिखाए गए अलर्ट का परिणाम है)। और मैं हेडर को उसी तरह से सेट कर रहा हूं। निश्चित नहीं। फ्लैश ऑब्जेक्ट ब्राउज़र में होने पर त्रुटियों को फेंकना प्रतीत नहीं होता है, इसलिए शायद यह केवल एक आईडीई चीज है। – typeoneerror