سؤال

في فليكس 3 / AS 3، ما من شأنه أن يكون وسيلة جيدة للتحقق ما إذا كان يوجد ملف بعيد؟ أنا أفكر في طرق PHP حيث كنت في محاولة ل"FOPEN" مسار بعيد (مثل " HTTP: // example.com/somefile.exe ")، ومعرفة ما اذا كان يعمل أو لا. أنا لا أطلب أن مجرد تحميل جميع الملفات، أريد فقط أن أعرف إذا كان الملف هناك (ويمكن الوصول إليها).

هل كانت مفيدة؟

المحلول

وأنت من المحتمل أن تحتاج إلى محاولة تحميل الملف. إذا كنت تحصل على IOError، عدم وجود ملف (أو المسار الخاص بك هو خاطئ). إذا كان يبدأ التحميل، عن طريق إحداث حالة التقدم ثم كان موجودا. ثم يمكنك إلغاء ما تبقى من التحميل.

وبدلا من ذلك يمكنك أن تحاول استدعاء النصي PHP من فلاش الذي يفعل ما لديك وصفها، وهذا قد يعود بسيط صح / خطأ.

نصائح أخرى

وهذا هو أفضل رمز وجدت لهذا المنصب

var urlStream:URLStream = new URLStream();
urlStream.addEventListener(Event.OPEN, streamHandler);
urlStream.addEventListener(IOErrorEvent.IO_ERROR, streamHandler);
urlStream.load(new URLRequest("SOME_FILE"));

function streamHandler(e:Event):void {
    urlStream.close();
    if(e.type == Event.OPEN){
        trace("FILE EXISTS");
    } else if(e.type == IOErrorEvent.IO_ERROR){
        trace("FILE DOES NOT EXIST");
    }
}

وهناك فئة فائدة وتطوير هذا التعامل مع الطقس الاختيار وجود ملف أو لا. هنا هو رمز: HTTPS: // جيثب. كوم / eladelrom / eladlib / فقاعة / الماجستير / EladLibFlex / SRC / كوم / العاد / إطار / تيلس / FileExistsUtil.as

وتنفيذ يبدو مثل هذا:

var fileExists:FileExistsUtil = new FileExistsUtil();
fileExists.checkFile("file.jpg", 
function(eventType:String):void
{
 trace(eventType);
}, 
function(errorType:String, text:String):void
{
 trace(errorType+": "+text);
});
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top