Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Pobieranie pliku z katalogu chronionego hasłem
Skyline
post 5.11.2009, 10:34:10
Post #1





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 25.07.2007

Ostrzeżenie: (0%)
-----


Witam

W jaki sposób pobrać plik z katalogu chronionego hasłem, a dodatkowo nie znając nazwy pliku, tylko mając do dyspozycji url w stylu: Download.aspx?file=Gp710gSKmjxctvITnLuwpsKvy3wsaZFn ?

Udaje mi się pobrać ten plik za pomocą curl'a, ale nie wiem w jaki sposób po pobraniu go do zmiennej, wysłać go do przeglądarki, tak aby użytkownik mógł zapisać plik na dysku.

Pozdrawiam

Ten post edytował Skyline 5.11.2009, 10:48:48
Go to the top of the page
+Quote Post
korro
post 5.11.2009, 10:51:17
Post #2





Grupa: Zarejestrowani
Postów: 259
Pomógł: 42
Dołączył: 8.04.2005
Skąd: Mława

Ostrzeżenie: (0%)
-----


Poczytaj o header: http://php.net/manual/en/function.header.php
może o to Ci chodzi.


--------------------
Go to the top of the page
+Quote Post
Skyline
post 5.11.2009, 11:01:58
Post #3





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 25.07.2007

Ostrzeżenie: (0%)
-----


Chciałbym żeby to było tak proste jak za pomocą header, ale w tym przypadku raczej sie tym nie da.

Póki co kod pobierajacy plik do zmiennej wygląda tak:

  1. $ch = curl_init($url);
  2. curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
  3. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  4. curl_setopt($ch, CURLOPT_USERPWD, '$username:$password');
  5. $data = curl_exec($ch);


Plik zapisany jest do zmiennej $data i teraz jak go wysłać do przeglądarki tak żeby użytkownik mógł go zapisać na dysk?
Go to the top of the page
+Quote Post
thek
post 5.11.2009, 11:10:40
Post #4





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Nie po to ktoś na nie Twoim serwisie ustawiał ukrywanie ścieżki pliku na serwerze by każdy sobie ściągał pliki jak leci smile.gif Chcesz udostępniać pliki? To sam je hostuj, a nie podpinasz się do obcego serwera, bo żal Ci transferu i/lub miejsca na własnym. Już na oko po linku widać, że koleś ma ten skrypt po to, by takim jak Ty utrudnić proceder. Z tego co widzę parametrem do skryptu jest hash md5, który zapewne jest kluczem do odpowiedniego wpisu w bazie, identyfikującego ścieżkę do pliku. Tego nie da się obejść. Możesz najwyżej próbować rozkminić strukturę serwera, ale zapewne dostęp do katalogu jest przez htaccess blokowany dla wszystkiego poza tym skryptem.
Musisz więc w dalszej części skryptu wyłapać jakie headery są Ci przesyłane przez serwer z jakim się łaczysz, byś mógł rozpoznać z czym masz do czynienia. Sama zawartość zmiennej nic Ci nie da, bo nawet nie wiesz co przesyłasz. Czy to zip, exe czy może jpg?


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
Skyline
post 5.11.2009, 11:39:33
Post #5





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 25.07.2007

Ostrzeżenie: (0%)
-----


Thek - nie moge Ci napisac co to za serwer i dlaczego sa te pliki ukrywane bo to poufne dane. Pytanie dotyczy php: jak plik pobrany curlem wyslac do przegladarki tak by uzytkownik mogl go zapisac na swój dysk.

Znalazłem taki sposób:

http://wortal.php.pl/phppl/wortal/artykuly...ysylanie_plikow

I można by go zaimplementować, jednak skrypt ten najpierw pobrany plik z zewnętrznego serwera zapisuje w swoim katalogu, a następnie ten plik mógłby zostać wysłany do przeglądarki za pomocą funkcji header().

Jednak wolałbym uniknąć pośredniczenia lokalnego serwera i przesyłać plik bezposrednio do uzytkownika do przeglądarki. Mogę to zrobić stosujac funkcje header() i bez udziału curl przekazywac plik ze zdalnego serwera do przegladarki uzytkownika jednak w tej sytuacji mozna podejrzec haslo autoryzacyjne co nie jest wskazane.

Ten post edytował Skyline 5.11.2009, 11:53:06
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 13:04