![]() |
Загрузка контента большого файла, для получения md5 file
Добрый день. Есть следующая задача: необходимо получить хеш файла (md5). Делаю следующий образом: загружаю содержимое файла в переменную, дальше через класс MD5.as беру хеш, так получаю md5_file. Все классно работает на маленьких файлах, если же файлы большие например метров 10 (не говоря уже за 100 мб и больше), то зависает и отбраковывает ошибку т.к. не вкладывается в 15 сек.
Вопрос может можно как то более по людски получать хеш файлов? Или как то по другому читать содержимое больших файлов? На данный момент читаю так: Код AS3:
Уже второй день трясу Инет - ничего не могу найти. Заранее спасибо за помощь! |
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стрим) |
Спасибо за ответ! Но я не программирую на Флэшь и знаю только основы...
Насколько я понимаю моя проблема не в том, что медленно работает обработка мд5 (хотя может до этого просто не доходит :)), а в том что медленно грузит в переменную содержимое файла (например если это ави на метров этак 700, то "мама не горюй"...). Может есть какой то более оптимальный способ получения хеш файла? |
загрузка происходит асинхронно. она не может вызвать ошибку таймаута. а вот md5 может. моя библиотека работает в ~120 раз быстрее. попробуйте.
|
Цитата:
Если разговор о 100-700 метровом файле, то как браузер отнесется к тому, что флеш попытается аллокейтить столько в памяти? И наверное так или иначе стримовая обработка мд5 будет лучше. |
Не подскажете как правильно подключить библиотеку, как правильно вызвать функцию и записать результата в переменную?...
Извиняюсь за глупые вопросы, но AS для меня абсолютно ново... |
Сайлас, ну если подсчёт md5 за 200+ секунд приемлем, тогда стрим будет лучше.
chiffa_cff, а как Вы это делали с as3corelib? как вы её подключали? |
А если к вашему мд5 написать стримовую обработочку, что потенциально получится?
|
BlooDHounD, нашел готовый пример и отредактировал :) Так что если есть возможность выложить пример буду весьма признателен....
|
chiffa_cff, ну с моей библиотекой можно поступить так же.
Сайлас, у меня ~5 метров обрабатывается за ~31ms ( можете сравнить с корелиб ). но вообще загрузить 700 метров скорее всего не удастся. ФП просто не даст обработать такой большой бинарник. скажет, что не может выделить столько памяти. |
Вот тут немного про память говорили: http://forums.adobe.com/thread/479297
|
а не найдется fla файлика с примером? ибо у меня почему то swc флэешка почему то даже не открывает (CS4)
|
Цитата:
Почитайте про SWC в сети хотя бы... |
свц и не должно открываться. это такой вид исходников. его надо подключать.
|
Насколько я понял только через ФлэшьДевелоп?
Добавлено через 2 минуты пытаюсь загрузить мне пишет: Exception while parsing D:\blooddy_crypto\blooddy_crypto.swc В экземпляре объекта не задана ссылка на объект. |
Цитата:
|
да читал... не могу найти как ее открыть в CS4
Добавлено через 15 минут нашел про копирование в Adobe\Adobe Flash CS4\en\Configuration\Components, но во вкладке компоненты ничего не появилось.... Добавлено через 27 минут Вроде как загрузилось через Publish settings, только как посмотреть какие классы загружены и как их использовать?... Добавлено через 18 часов 6 минут up! up! |
| Часовой пояс GMT +4, время: 06:10. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.