![]() |
К знатокам Web-1 10 дней парился в бане, напарился вдоволь, вышел вчера вечером, звезды горят, морда красная. Короче полный кайф. Точнее, не совсем полный. Мучаюсь с сайтом госзакупок по 223 закону (по 43 вроде тьфу тьфу все притерлось) С сайта надо в том числе скачивать вложенные к закупке документы и все бы хорошо, но встретился такой тендер, что в коде страницы есть только ссылка и имя файла без расширения. То есть я скачать то могу, но только без расширения с последующим геморроем при открывании файлов. При клике по ссылке открывается диалог скачивания файла, содержащий имя файла с расширением. Как мне программно из семерки получить полное имя с расширением? в интернете искал, тема возникала, но не у 1с-ников и мало что понял. Скачивать могу двумя способами - V7PPLUS и ADO Streem. Без расширения все прекрасно качается |
"[em]программно получить полное имя с расширением[/em]" Где файл-то содержится? Который пытать собрался? Если на компе - проблема в чем? Проводник расширение не показывает, или файл расширение потерял в процессе скачивания? А изменить имя скаченного файла, добавив ему расширение, пробовал? |
(1)Есть страница конкретной закупки на сайте госзакупок. Есть http ссылки на документы закупки и есть имена файлов этих документов. Но в некоторых закупках (не у всех) у имен файлов нет расширений. Я не могу добавить раcширение, потому что его нет на этой странице. Вот пример: </td> <td style="width: 40%"> <a class="epz_aware" href="/223/purchase/public/download/download.html?id=23402881" title="" onclick="doNotLocking();">Образцы оттисков печатей и штампов</a> </td> <td style="width: 15%"> Как раз вся и проблема как узнать расширение. У "нормальных" закупок выглядит примерно так: </td> <td style="width: 40%"> <a class="epz_aware" href="/223/purchase/public/download/download.html?id=21188813" title="" onclick="doNotLocking();">документация печати и опечат ус-ва.doc</a> </td> <td style="width: 15%"> Поэтому расщирение никто не терял, я ж не руками его скачиваю и имя файла и ссылку беру произвоводя парсинг страницы. Вот имя закачанного файла я и хочу изменить ) |
2-USSR > Т.е. "[em]я скачать то могу, но только без расширения[/em]"? Тогда скачивай без раширения. И пытайся узнать у себя о файле. [em]' Вывод аргументов файла Set objArgs = WScript.Arguments Set FSO = CreateObject("Scripting.FileSystemObject") For I = 0 to objArgs.Count - 1 FileName = objArgs(I) ' WScript.Echo FileName Set File = FSO.GetFile(FileName) Str = vbNullString Str = Str & "Дата создания - " & File.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & File.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & File.DateLastModified & vbCrLf Str = Str & "Диск - " & File.Drive.DriveLetter & vbCrLf Str = Str & "Имя - " & File.Name & vbCrLf Str = Str & "Родительский каталог - " & File.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & File.Path & vbCrLf Str = Str & "Короткое имя - " & File.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & File.ShortPath & vbCrLf Str = Str & "Размер - " & File.Size & vbCrLf Str = Str & "Тип файла - " & File.Type MsgBox Str Next [/em] Сохрани как .vbs на рабочем столе, и кинь на него файл. |
Попробуй еще архиватором раскрыть: а вдруг. Картинки часто зипуют. |
Не катит FSO. Для файла с расширением возвращает то что надо. Для копии этого же файла, но без расширения возвращает просто "File". Должны быть другие пути, ведь вручную файл скачивается с расширением |
5-USSR > Вот это совсем непонятно: как видно в (2), сам сайт ни в чем не виноват: он содержит ссылку (id=) в своем каталоге download. Виновато описание этой ссылки (onclick=), не содержащее расширения. Отсюда вывод: - либо, обнаружив отсутствия типа открываешь руками; - либо жалуешься админам этого сайта, и они, теряя тапочки, бросаются исправлять косяк; - либо открываешь сайт в браузере, и начинаешь шуровать там [em]сендкеем[/em], имитируя продвинутого пользователя; - либо ты лезешь в каталог [em]/223/purchase/public/download/download.html[/em], и перебираешь его на предмет определенного id, после чего скрадываешь. Если оне это вообще позволят. ИМХО. |
(6)руками не катит, это руки заказчика. Он не хочет руками, так как отвык. Админы сайта госзакупок если и бегают, то в супермодных кроссовках, они просто болт на всех забили. Будем дальше думать. По 43-закону такого безобразия пока что не встречалось |
?? и это всё(1-7) ты к 77-ке что ли прикручиваешь? |
(8)Да, а почему нет? есть конфигурация, много лет работает. И сейчас почти все работает, кроме обозначенной заморочки с расширением. |
удивительно просто, - и ничего личного, - шикарно. мне тут твердили просто, будто 7.7 = rip |
(10)Есть много на свете друг Горацио... Разные бывают случаи, разные клиенты. Смотря что понимать под трупом, клиентов на 7.7 много, новые понятно на снеговиках, потому что 7.7 просто не купить |
горацио.. нюню)) а в прочем и не купить - тоже фэйк;) |
(12)это ж всего лишь цитата - ничего личного ) Почему не купить - фейк ? По моему официальных продаж уже нет. Года 3 назад один товарищ купил торговлю, и то уже сильно подорожавшую |
Как же узнать полное имя файла, ведь при скачивании вручную диалог скачивания его знает и скачивает с расширением. По 43 закону такого не было, хотя тоже местами сделано очень коряво. А стоит все наверняка сотни миллионов ) |
!! йода в таких ситуациях всегда отвечал: - ручками. - но, учи.. - ручками, мой друг, ручками. - н.. - РРУЧКАМИ! |
Ручками-неинтересно, такой совет я и сам могу дать |
Ну вроде как решение нашлось путем чтения заголовков ответа. Не знаю будет ли оно устойчивым |
17-USSR > - Ага, не напрасно терзался, заветная дверца открылась, и мы теперь будем знать. :-) |
уФФ, вроде победил, имя файла то быстро раздобыл, но вдоволь натрахался с его перекодировкой. Через ADODB Streem так и не вышло перекодировать строку, а потом не сразу вспомнил, что КодСимв в семерке и КодСимвола в 80-ке - не совсем одно и то же )) Всем спасибо )) |
Текущее время: 23:37. Часовой пояс GMT +3. |