Здравствуйте. Уже как-то обращался за помощью на этот форум, мне помогли, очень благодарен, надеюсь, помогут ещё раз.
Пишу загрузчик фото на actionscript 3. Заметил, что при загрузке большого количества фотографий (больше сотни, при этом вес каждой составляет 3-4 Мб), загрузка останавливается, причём каждый раз в разном месте - на 38-й, 70-й фотографии или любой другой по счёту. Событие IOErrorEvent.IO_ERROR не срабатывает. Загрузчик был с ресайзом, решил его убрать (может в нём и сопутствующем коде дело) - проблема осталась.
Код AS3:
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.external.ExternalInterface;
import mx.utils.UIDUtil;
private var fr:FileReferenceList = new FileReferenceList, i:Number, elem:Object = new Object, uploadURL:String, uniqId:String;
private function onClick():void {
uploadURL = ExternalInterface.call("returnURL"); //получаю со страницы URL загрузки
i = 0;
fr.browse([new FileFilter("Фотографии jpg", "*.jpg; *.jpeg")]);
fr.addEventListener(Event.SELECT, onSelect);
}
private function onSelect(e:Event):void {
if (i < fr.fileList.length) {
uniqId = UIDUtil.createUID() + ".jpg"; //уникальное имя для файла
if (i == 0) {
fr.removeEventListener(Event.SELECT, onSelect);
}
elem = FileReference(fr.fileList[i]);
elem.load();
elem.addEventListener(Event.COMPLETE, loadBig);
}
if (i >= fr.fileList.length) {
}
}
private function loadBig(e:Event):void {
elem.removeEventListener(Event.COMPLETE,loadBig);
elem.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA,onLoad);
elem.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
elem.cancel();
elem.upload(new URLRequest(uploadURL + "?fileName=" + uniqId));
}
private function ioErrorHandler(e:IOErrorEvent):void {
//функция не выполняется, когда загрузка останавливается
elem.removeEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
myB.label = "ошибочка вышла";
}
private function onLoad(e:DataEvent):void {
elem.removeEventListener(DataEvent.UPLOAD_COMPLETE_DATA,onLoad);
i++;
ExternalInterface.call("setProgress", i, fr.fileList.length); //на странице средствами jquery отслеживаю загрузку
myP.setProgress(i, fr.fileList.length); //также отслеживаю загрузку при помощи ProgressBar
onSelect(null);
}
Предположил, что дело в настройках php. Выставил max_execution_time = 3000 и memory_limit = 3280M (сервер - Denwer). Проблема осталась.
В чём может быть дело? Благодарен за любые предположения.