Обработка mp3 перед загрузкой

28 Фев
2012

Пришла тут в голову мысль создания музыкального ресурса, со своими особенностями, которые раскрывать пока не хочется, да это собственно пока и не относится к основному вопросу. А он самый, вопрос этот, затрагивает такой функционал ресурса, как загрузка файлов на сервер. Казалось бы, ну загрузка файлов на сервер, что тут особенного и сверхъестественного? Дело в том, что помимо основной функции файла, а это будут исключительно файлы формата mp3, необходимо будет каждый файл обработать.

ID3 теги

В ходе обработки файла будут «выдраны» его id3 теги для дальнейшего их использования, разумеется если таковые существуют. При этом сразу под формой выбора файла появятся поля «Исполнитель», Заголовок», и выпадающий список «Жанр». При наличии в файле тегов, они будут автоматически подставлены в сообтветствующие поля, с возможностью их редактирования. Если же возвращенный результат окажется нулевым, пользователю будет предложено заполнить данные поля.

Защита от дублирования

Немного отступления. В нашей стране сеть Интернет находится на уровне ниже среднего и практически у всех провайдеров существуют ограничения по объему трафика (в зависимости от тарифа), а безлимитный интернет на скоростях до 1Мбит/сек по стоимости зашкаливает за пару сотен баксов. В связи с этим, пользователи местного интернета, и будущая публика создаваемого ныне ресурса, в большинстве своих случаев скачивает музыку с внутренних ресурсов провайдера, что означает дублирование материалов на большинстве ПК.

Вследствие сложившейся ситуации, необходимо обеспечить максимальную минимизацию дублирования материала при загрузке на ресурс. Происходить это будет путем сравнения размера загружаемого файла (в байтах), пристыкованному значению одного из ID3 тегов, и зашифрованному в md5 для создания контрольной суммы файла. В случае совпадения значения, пользователю будет предложено не тратить время на загрузку файла, а добавить уже имеющийся файл на сервере себе в коллекцию. Разумеется дабы исключить вероятные ошибки в определении, пользователю будет выдано сообщение вида: «Возможно Вы пытаетесь загрузить файл (Название), который уже существует. Если это так, то Вы можете добавить файл себе в коллекцию не загружая его. Если мы ошиблись, Вы можете продолжить загрузку.»

При всем при этом, обработку необходимо сделать достаточно быстро, чтобы пользователь, в надеждена то, что загрузка файла уже началась, не ушел со страницы, и не материл администрацию ресурса за то, что файл так и не загрузился, пока он занимался своими делами.

Вопрос

Ну и вопрос то собственно вот в чем. На каком языке программирования наиболее оптимально будет создание подобного загрузчика/обработчика, если сам сайт будет написан на РНР? Рассматривались пока 2 варианта — РНР и ActionScrript. РНР известен тем, что не сможет выдать всю информацию с файла без его загрузки, но ситуацию можно допилить Ajax. Использовать Flash тоже имеет свои опасения, поскольку не на каждом ПК установлен нормальный FlashPlayer, который гарантированно будет работать с ресурсом. Посему, жду от Блогасообщества замечания, предложения и вопросы касательно данной темы.
По материалам Хабрахабр.



загрузка...

Комментарии:

Наверх