Параметры для извлечения ZIP-файла на стороне клиента перед загрузкой - PullRequest
6 голосов
/ 24 июня 2011

Наша проблема

Мы создаем браузерное приложение, которое позволяет пользователю загружать файлы на сервер для обработки. Серверная часть написана на PHP с использованием платформы Codeigniter v2.0.2. Загружаемые файлы являются выходом другой системы, и их формат находится вне нашего контроля. Они могут быть очень большими (100 МБ), но большая часть их содержимого не требуется для обработки на стороне сервера. Сами файлы на самом деле имеют формат zip (хотя и с индивидуальным расширением) и содержат много файлов изображений вместе с относительно небольшим XML-файлом, и только это нам нужно для обработки на стороне сервера. Очевидно, было бы довольно расточительно отправить весь файл, когда нам нужно менее 1% от его массы. Мы также не хотим просить пользователей вручную извлекать XML из файла.

Мой вопрос

Каковы наши варианты написания клиентского кода, который может извлечь XML-файл из zip-файла и отправить его? Рад рассмотреть любые технологии, которые работают в большинстве современных браузеров. Несмотря на то, что мы являемся домом программирования на C # / C ++, веб-технологии не являются нашими повседневными задачами, поэтому примеры кода с благодарностью приняты!

Большое спасибо.

Ответы [ 3 ]

1 голос
/ 25 июня 2011

Это должно быть легко выполнимо с подписанным Java-апплетом, 90% пользователей установят Java, если не клиент сможет установить его.

Подписанный Java-апплет сможет получить доступ к файлу, извлечь нужный файл и перенести его на ваш сервер.

Это также будет довольно быстро, поэтому даже большие файлы будут работать очень хорошо.

1 голос
/ 24 июня 2011

Вы ищете библиотеку для сжатия zip?Вы можете использовать SLSharpZipLib на стороне клиента и его .NET аналог на стороне сервера.

0 голосов
/ 25 июня 2011

Я использовал эту библиотеку Фила Стерджена. Мои файлы были размером менее 20 МБ, поэтому я не могу сказать, как это будет работать с вашим проектом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...