Статьи на тему Интернет и Интернет-программирования на AC-Power

Проблемы со "скачиванием" и... после него.


На главную страницу | Интернет | Хостинг | Сервисы

Иногда при работе с электронными библиотеками и другими сайтами, на которых размещены архивы или ссылки на них, возникают трудности с их скачиванием. Это может проявляться по-разному:

1. Архив скачивается на Ваш компьютер, но архиватор не желает его открывать.

2. Щелчок при ссылке на архив вместо ожидаемого окошка "Save As..." или чего-то в этом роде приводит к загрузке этого архива в окно браузера, в результате вы видите в нем "кашу".

В данной статье рассматриваются возможные причины такого "плохого поведения" и возможные варианты выхода из этой ситуации (естественно, победителем :).



Вполне вероятной причиной такого "безобразия" является неправильная установка на сервере Content-type для данного расширения файла.

Существуют также "глюки" в браузерах, из-за чего, например, Netscape Navigator "Вываливает в окно" документ с Content-type: application/octet-stream.

Так или иначе, в большинстве случаев скачать такой ресурс или просмотреть уже скачанный архив в большинстве случаев оказывается вполне возможно.

Итак,

Совет: Если архив начинает "скачиваться" в окно браузера в виде "каши", попробуйте его сохранить, выбрав команду (Сохранить ссылку как...) Save Link As..., которая обычно находится в контекстном меню. Это обеспечит принудительное сохранение скачиваемого файла на диск.

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

Так, в Windows концом строки являются следующие друг за другом два символа- возврат каретки (CR, десятичный код 13) и перевод строки (LF, десятичный код 10). В UNIX концом строки является символ перевода строки (LF). Наиболее часто возникающая ситуация при скачивании файла - передача его из UNIX (на которых работает большинство web-серверов) в Windows.

Следовательно, если файл ошибочно передается в ASCII-режиме, искажение его заключается в замене всех символов LF на последовательность символов CR+LF. Следовательно, для восстановления исходного содержимого файла надо произвести обратную замену.

Сделать это можно с помощью несложной программы, которая может быть написана практически на любом языке программирования. Учитывая, что сейчас на многих компьютерах стоят приложения пакета Microsoft Office 97, имеющие мощное средство программирования Visual Basic for Applications (VBA), приведем программку на VBA для "лечения" скачанных файлов. Скачать ее можно здесь

Для ее установки Вы должны распаковать архив, затем из MSWord Visual Basic (в него из Word-а можно перейти по команде Сервис-Макрос-Редактор Visual Basic) командой Файл-Импорт файла... импортировать файл HelpDld.frm После этого из Word-а создаете любой пустой макрос, привязывая его к чему Вам больше нравится (к кнопке панели инструментов, пункту меню и т.д.). После этого из окна Макросы (Сервис-Макрос-Макросы) выбираете "Изменить" ваш новый макрос, и записываете в него строчку:

HelpDld.Show

После этого можете использовать этот макрос для запуска программы.

В программе Вы выбираете путь к исправляемому файлу (либо вводя его, либо с помощью кнопки Обзор...), а затем нажимаете кнопку Старт.

Работа происходит в 2 этапа: на первом формируется лог-файл, на втором - уже собственно формируется исправленный файл.

При этом исходный файл остается без изменений (на всякий случай), имя исправленного файла образуется добавлением в начале "_" (т.е. для файла text.zip исправленный файл будет _text.zip), а имя лог-файла - добавлением "LOG_"(LOG_text.zip). Собственно, после работы лог-файл Вам уже станет не нужен (он нужен лишь в процессе работы программы), и его можно будет удалить.

Программа работает достаточно медленно, зато не замедляет работу компьютера (кстати, если кто знает, как ее сделать хоть чуть быстрее - напишите, пожалуйста, мне ! Заранее благодарен.)

В заключение отмечу, что программа для вывода диалогового окна открытия файла использует Microsoft Common Dialog ActiveX Control (COMDLG32.OCX), поэтому он должен быть корректно установлен на Вашем компьютере.

Автор: Андрей Черный
angel07@inbox.ru



На главную страницу | Интернет | Хостинг | Сервисы

Профессиональный хостинг от 5$ в месяц