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

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

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

Регистрация: Jul 2010
Сообщений: 7
По умолчанию Загрузка контента большого файла, для получения md5 file

Добрый день. Есть следующая задача: необходимо получить хеш файла (md5). Делаю следующий образом: загружаю содержимое файла в переменную, дальше через класс MD5.as беру хеш, так получаю md5_file. Все классно работает на маленьких файлах, если же файлы большие например метров 10 (не говоря уже за 100 мб и больше), то зависает и отбраковывает ошибку т.к. не вкладывается в 15 сек.

Вопрос может можно как то более по людски получать хеш файлов? Или как то по другому читать содержимое больших файлов?

На данный момент читаю так:

Код AS3:
var loader:URLLoader = new URLLoader(new URLRequest("E:/mp3/Artyr.mp3"));
loader.addEventListener(Event.COMPLETE, completeHandler);
function completeHandler(event:Event):void {
    var loadedText:URLLoader = URLLoader(event.target);
 
trace (loadedText.data);    
}

Уже второй день трясу Инет - ничего не могу найти. Заранее спасибо за помощь!

Старый 14.07.2010, 00:16
Сайлас вне форума Посмотреть профиль Отправить личное сообщение для Сайлас Найти все сообщения от Сайлас
  № 2  
Ответить с цитированием
Сайлас

Регистрация: Mar 2008
Сообщений: 259
1. А может лучше у файлов crc брать, а не мд5, он как бы значительно быстрее?
2. Пробовали более быстрый мд5 "от Бладди" (http://www.flasher.ru/forum/blog.php?b=217)? (с)

Добавлено через 4 минуты
3. http://code.google.com/p/as3corelib/...o/MD5Stream.as вот кстати еще что, если это привязать к blooddy.crypto - то может получиться что нужно (хотя сами привязать не сможете, попробуйте прям тот мд5стрим)


Последний раз редактировалось Сайлас; 14.07.2010 в 00:29.
Старый 14.07.2010, 00:35
chiffa_cff вне форума Посмотреть профиль Отправить личное сообщение для chiffa_cff Найти все сообщения от chiffa_cff
  № 3  
Ответить с цитированием
chiffa_cff

Регистрация: Jul 2010
Сообщений: 7
Спасибо за ответ! Но я не программирую на Флэшь и знаю только основы...

Насколько я понимаю моя проблема не в том, что медленно работает обработка мд5 (хотя может до этого просто не доходит ), а в том что медленно грузит в переменную содержимое файла (например если это ави на метров этак 700, то "мама не горюй"...). Может есть какой то более оптимальный способ получения хеш файла?

Старый 14.07.2010, 01:12
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 4  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
загрузка происходит асинхронно. она не может вызвать ошибку таймаута. а вот md5 может. моя библиотека работает в ~120 раз быстрее. попробуйте.

Старый 14.07.2010, 01:17
Сайлас вне форума Посмотреть профиль Отправить личное сообщение для Сайлас Найти все сообщения от Сайлас
  № 5  
Ответить с цитированием
Сайлас

Регистрация: Mar 2008
Сообщений: 259
Цитата:
Сообщение от BlooDHounD Посмотреть сообщение
загрузка происходит асинхронно. она не может вызвать ошибку таймаута. а вот md5 может. моя библиотека работает в ~120 раз быстрее. попробуйте.
А что-то меня цель загрузки смущает?
Если разговор о 100-700 метровом файле, то как браузер отнесется к тому, что флеш попытается аллокейтить столько в памяти?
И наверное так или иначе стримовая обработка мд5 будет лучше.

Старый 14.07.2010, 01:42
chiffa_cff вне форума Посмотреть профиль Отправить личное сообщение для chiffa_cff Найти все сообщения от chiffa_cff
  № 6  
Ответить с цитированием
chiffa_cff

Регистрация: Jul 2010
Сообщений: 7
Не подскажете как правильно подключить библиотеку, как правильно вызвать функцию и записать результата в переменную?...

Извиняюсь за глупые вопросы, но AS для меня абсолютно ново...

Старый 14.07.2010, 14:29
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 7  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
Сайлас, ну если подсчёт md5 за 200+ секунд приемлем, тогда стрим будет лучше.

chiffa_cff, а как Вы это делали с as3corelib? как вы её подключали?

Старый 14.07.2010, 14:31
Сайлас вне форума Посмотреть профиль Отправить личное сообщение для Сайлас Найти все сообщения от Сайлас
  № 8  
Ответить с цитированием
Сайлас

Регистрация: Mar 2008
Сообщений: 259
А если к вашему мд5 написать стримовую обработочку, что потенциально получится?

Старый 14.07.2010, 15:09
chiffa_cff вне форума Посмотреть профиль Отправить личное сообщение для chiffa_cff Найти все сообщения от chiffa_cff
  № 9  
Ответить с цитированием
chiffa_cff

Регистрация: Jul 2010
Сообщений: 7
BlooDHounD, нашел готовый пример и отредактировал Так что если есть возможность выложить пример буду весьма признателен....


Последний раз редактировалось chiffa_cff; 14.07.2010 в 15:24.
Старый 14.07.2010, 15:30
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 10  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
chiffa_cff, ну с моей библиотекой можно поступить так же.

Сайлас, у меня ~5 метров обрабатывается за ~31ms ( можете сравнить с корелиб ). но вообще загрузить 700 метров скорее всего не удастся. ФП просто не даст обработать такой большой бинарник. скажет, что не может выделить столько памяти.

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

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

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


 


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


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