Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 21.01.2012, 18:32
Sergey_S вне форума Посмотреть профиль Отправить личное сообщение для Sergey_S Найти все сообщения от Sergey_S
  № 1  
Ответить с цитированием
Sergey_S

Регистрация: Jan 2012
Сообщений: 5
По умолчанию Прерывается загрузка файлов методом filereference.upload()

Здравствуйте. Уже как-то обращался за помощью на этот форум, мне помогли, очень благодарен, надеюсь, помогут ещё раз.
Пишу загрузчик фото на 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). Проблема осталась.
В чём может быть дело? Благодарен за любые предположения.


Последний раз редактировалось iNils; 21.01.2012 в 20:05.
Старый 21.01.2012, 19:09
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 2  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
как-то немного скользко, правда, об этом в доках заявлено, может с этим связано
Цитата:
Although Flash Player has no restriction on the size of files you can upload or download, the player officially supports uploads or downloads of up to 100 MB.

Старый 21.01.2012, 20:58
Sergey_S вне форума Посмотреть профиль Отправить личное сообщение для Sergey_S Найти все сообщения от Sergey_S
  № 3  
Ответить с цитированием
Sergey_S

Регистрация: Jan 2012
Сообщений: 5
Судя по всему, ограничение в 100 Мб распространяется на один файл. Т.е. можно загружать сколько угодно файлов, но размер каждого не должен превышать 100 Мб.

Нашёл на stackoverflow схожую с моей проблему, пишут, что можно попробовать использовать https протокол (правда в том вопросе URLLoader, а у меня загрузка через FileReference).

Создать новую тему Ответ Часовой пояс GMT +4, время: 04:37.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
filereference , filereferencelist
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 04:37.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.