Nazwa pliku z linku HTTP

problemy z tworzeniem programów do obsługi sieci, internetu, e-mail itp..

Nazwa pliku z linku HTTP

Nowy postprzez mckri » poniedziałek, 23 maja 2011, 00:45

Witam, jak można wyciągnąć programowo nazwę pliku z linku HTTP? Próbowałem przez HttpQueryInfo, jednak ona nie ma zdaje się takiej możliwości.
Chodzi mi głównie o wyciągnięcie nazwy pliku z linku dla pliku umieszczonego na serwerze z php. Przeglądarki potrafią to rozpoznać, więc pewnie jest jakiś sposób...
Przykładowy link: http://programowanie.cal.pl/forum/download/file.php?id=274
Avatar użytkownika
mckri
Intelektryk
Intelektryk
 
Posty: 160
Dołączył(a): piątek, 15 sierpnia 2008, 13:48
Podziękował : 10
Otrzymał podziękowań: 2
System operacyjny: Windows Vista SP2
Kompilator: BCB 5/2007/2009
    Windows VistaOpera

Re: Nazwa pliku z linku HTTP

Nowy postprzez polymorphism » poniedziałek, 23 maja 2011, 11:12

W przypadku tego linka masz taką pozycję w nagłówku odpowiedzi:

Content-Disposition: attachment; filename*=UTF-8''ftp_2007_2.zip


Żeby nie było za prosto, ta pozycja może, ale nie musi występować, wtedy nazwę spróbuj wyciągnąć z url-a.

Tu szczegóły -> http://www.ietf.org/rfc/rfc2183.txt
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: Nazwa pliku z linku HTTP

Nowy postprzez mckri » poniedziałek, 23 maja 2011, 12:02

Akurat w tym przypadku faktycznie jest ta informacja pokazana. To był jednak tylko przykład. Tak naprawdę potrzebuje pobrać plik z innej strony, gdzie w źródle strony nie widać informacji co jest pobierane. Przeglądarka pokazuje jednak poprawnie plik do pobrania. Na chwilę obecną nie mogę jednak udostepnić danych do logowania na tą stronę do testowania :(. Spróbuje podać taki przykład z innej strony http, gdzie będzie można bez problemu coś takiego zasymulować.
Avatar użytkownika
mckri
Intelektryk
Intelektryk
 
Posty: 160
Dołączył(a): piątek, 15 sierpnia 2008, 13:48
Podziękował : 10
Otrzymał podziękowań: 2
System operacyjny: Windows Vista SP2
Kompilator: BCB 5/2007/2009
    Windows VistaOpera

Re: Nazwa pliku z linku HTTP

Nowy postprzez mckri » wtorek, 21 czerwca 2011, 23:55

Tak się zastanawiam nad tym pobieraniem nazwy pliku z linku url, ze strony obsługiwanej przez php. Jak obsługują to przeglądarki?
Nawet zwykła kontrolka CppWebBrowser bazująca na IE, potrafi wyświetlic nazwę pobieranego pliku przy wywołaniu funkcji
Kod: Zaznacz cały
CppWebBrowser1->Navigate(...)

Może istnieje równiez sposób poprzez wykorzystanie tej kontrolki, aby 'po cichu' zwróciła nazwę pobieranego pliku?
Avatar użytkownika
mckri
Intelektryk
Intelektryk
 
Posty: 160
Dołączył(a): piątek, 15 sierpnia 2008, 13:48
Podziękował : 10
Otrzymał podziękowań: 2
System operacyjny: Windows Vista SP2
Kompilator: BCB 5/2007/2009
    Windows VistaInternet Explorer 8

Re: Nazwa pliku z linku HTTP

Nowy postprzez polymorphism » środa, 22 czerwca 2011, 00:18

Jak obsługują to przeglądarki?

Normalnie. Ostatni składnik URL-a to nazwa pliku.

Może istnieje równiez sposób poprzez wykorzystanie tej kontrolki

Chcesz użyć WebBrowsera tylko po to, żeby wyciągnąć nazwę pliku? Przecież to absurd!
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: Nazwa pliku z linku HTTP

Nowy postprzez mckri » środa, 22 czerwca 2011, 12:22

Normalnie. Ostatni składnik URL-a to nazwa pliku.

Gdyby tak było, nie męczyłbym na forum.
Nie znam się na php, ale strona z której chcę pobrac plik najprawdopodobniej działa tak, że w momencie wywołania linku następuje zapytanie do bazy w wyniku czego zwracana jest nazwa pliku do pobrania. Pliku nie ma nigdzie w kodzie strony a tym bardziej w treścli linka.
A mimo to podczas wywołania linku w przeglądarkach pojawia się nazwa pliku do pobrania.
Niestety nie moge podać namiarów na tą stronę obecnie, ale może się uda wkrótce.
Avatar użytkownika
mckri
Intelektryk
Intelektryk
 
Posty: 160
Dołączył(a): piątek, 15 sierpnia 2008, 13:48
Podziękował : 10
Otrzymał podziękowań: 2
System operacyjny: Windows Vista SP2
Kompilator: BCB 5/2007/2009
    Windows VistaInternet Explorer 8

Re: Nazwa pliku z linku HTTP

Nowy postprzez polymorphism » środa, 22 czerwca 2011, 13:22

Nie znam się na php (...)

Niewątpliwie nie znasz się ;) To, jaki język skryptowy został użyty po stronie serwera, w tym przypadku nie ma zupełnie znaczenia, ponieważ jest to sprawa protokołu HTTP, a nie tego, w jaki sposób generowana jest zawartość strony www. Myślisz, że jakby strony generowane były w Javie, inaczej by to wyglądało? Oczywiście, że nie! Dla przeglądarki nie ma to znaczenia. Ale wracając do problemu. Jeśli link nie zawiera nazwy pliku w URL-u lub w nagłówku odpowiedzi, to prawdopodobnie zostajesz przekierowany na właściwy adres z plikiem, i dopiero tam masz to, czego szukasz. Sprawdź, czy przypadkiem nie dostajesz przekierowania, czyli, czy nie dostajesz w odpowiedzi kodu 303 (nie wiem, czego tam używasz, ale jeśli masz włączoną obsługę przekierowań, to ją wyłącz).
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Aplikacje sieciowe

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 1 gość