Сохранение файлов в BAS. Проблема расширения .file



  • Здравствуйте, уважаемые эксперты. Существует сайт у которого закачка файлов производится по ссылкам вида ...download?id=10320. Расширение и название файла заранее неизвестно, это может быть что угодно. Необходимо путем простого перечисления id от минимального до максмимального скачать все файлы с сайта. Проблем начинается тогда, когда вместо название Kollazh_osen.pptx или blue_template_animation_2017.mp4 названия и расширения приобретают совершенно странные символы в виде 1ZLTY4GGTI.file. Зачем оно сделано в таком варианте и можно ли каким-то образом узнать оригинальное название и расширение файла и какими-то манипуляциями скачать так, как это и задумано? Если же нет, то можно ли организовать это аналогами (пусть и в личку)? Задача для меня криминально важна, исходное название сохраняет много информации о файле, которая попросту теряется. Методом бас хотел менять id инкрементируя значения каждый проход. Казалось бы, задача простая, но и здесь какие-то подводны камни. Спасибо



  • @NikitaKireev Слона какого-то описали. Получайте имя файла который скачивайте и перемещайте(переименовывайте) его после скачивания.



  • @UserTrue посмотрел аналогичные темы на форуме, но не так и не нашел способа узнать исходное имя. Если не затруднит не подскажете какими действиями можно узнать имя?



  • @NikitaKireev said in Сохранение файлов в BAS. Проблема расширения .file:

    @UserTrue посмотрел аналогичные темы на форуме, но не так и не нашел способа узнать исходное имя. Если не затруднит не подскажете какими действиями можно узнать имя?

    Оно же есть на странице или в ссылке.



  • @UserTrue в том-то и дело, что ссылки не вида http://site.com/filename.zip ,где файл и его расширение указаны явно, а http://site.com/download?id=10320 .То есть просто номер id без какого-либо имени. При переходе по ссылке начинается скачивание файла с соответствующим именем. Я не силен в веб программировании, может можно как-то получить ответ от сайта по этой ссылке и там и будет это имя? Я просто тыкал, но поскольку дилетант, ни к чему хорошему это не привело.



  • @NikitaKireev Возможно, когда вы переходите по ссылке, какой-то js-скрипт запускает загрузку. Тогда надо разбираться в коде.



  • @NikitaKireev название файла скорей всего хранится в заголовках ответа.
    (похожий случай попадался. ссылка с ид, а после скачивания файл имел норм. имя. это имя указывалось в заголовках ответа и какой то магией(самим браузером или js) определял имя файла по заголовку )



  • @tet-vivi Либо заголовок, либо с фреймом какая-нибудь магия )



  • @UserTrue в моём случае название было в заголовках ответа. дальше искать не было смысла, оттуда легко получить данные.



  • @tet-vivi когда через вкладку http пытаюсь скачать файл по ссылке возникает окно программы, где есть вкладка received. Я так понял это и есть ответ. Так вот там нет данных о названии. Ни даже о расширении.



  • @NikitaKireev дай список заголовков ответа



  • @tet-vivi Оно?

    Url: http://my.site.ru/files?id=155000
    Status: 302

    Server: nginx
    Date: Tue, 26 May 2020 08:24:18 GMT
    Content-Type: text/html; charset=UTF-8
    Content-Length: 211
    Connection: keep-alive
    Cache-Control: no-store, no-cache, must-revalidate
    Pragma: no-cache
    Expires: Thu, 19 Nov 1981 08:52:00 GMT
    Location: http://my.site.ru/
    Set-Cookie: PHPSESSID=40a76cba9t1h84n8213qgerq3d; path=/; HttpOnly
    X-Powered-By: ASP.NET



  • This post is deleted!


  • @UserTrue очень странное поведение. Определил, что это не javascript. Просто переход по ссылке не грузит никакой страницы, загрузка начинается сама по себе. Можно отключить JavaScript в хром и перейти по ссылке - загрузка стартанет сама по себе. Можно из любого места нажать ПКМ -> Сохранить данные по ссылки и начнется загрузка. Так я понял, что это самая обычная ссылка на файл. Имени файла изначально нет на странице с файлом, страницу можно даже не загружать. При всем при этом я так и не понял как мне из BAS получить хотя бы заголовок с расширением файла, а еще лучше - полное имя.



  • @NikitaKireev, скиньте ссылку



  • @GhostZ ссылку кидать бессмысленно, поскольку сайт корпоративный и вас там встретит разве только поле авторизации. Любые тесты возможны только имея внутренний аккаунт зарегистрировать который нельзя.
    Кстати, заметил, что по факту запросы GET не отрабатываются как должны, сайт на них отвечает так:

    Url: https://my.site.ru/files?id=123391
    Status: 302

    Server: nginx
    Date: Tue, 26 May 2020 17:40:07 GMT
    Content-Type: text/html; charset=UTF-8
    Content-Length: 211
    Connection: keep-alive
    Cache-Control: no-store, no-cache, must-revalidate
    Pragma: no-cache
    Expires: Thu, 19 Nov 1981 08:52:00 GMT
    Location: http://my.site.ru/
    X-Powered-By: ASP.NET

    <head><title>Документ перемещен</title></head>
    <body><h1>Объект перемещен</h1>Документ теперь находится <a HREF="http://my.site.ru/">здесь</a></body>

    Вся суть в последних строчках, поэтому и тип файла отображается text/html. Будучи дилетантом понятия не имею. Такое чувство, что он просто обрывает такие запросы и чего-то ему не нравится.


Log in to reply