Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pobieranie pliku po zalogowaniu
radmistrz2
post
Post #1





Grupa: Zarejestrowani
Postów: 143
Pomógł: 4
Dołączył: 2.03.2008

Ostrzeżenie: (10%)
X----


Witam. Aby pobrać plik muszę się zalogować. Zrobiłem skrypt w php, który curlem mnie loguje. Teraz chcę pobrać ten plik na swój dysk tak, abym nie musiał czekać aż plik zapisze się na mój serwer ze skryptem cURL, tylko bezpośrednio na mój dysk. Jak to zrobić??


--EDIT--

Znalazłem coś, wydaje mi się ze na ten temat: http://wortal.php.pl/phppl/wortal/artykuly...funkcje_zwrotne

Czy to będzie punkt z artykułu: Wykorzystanie funkcji zwrotnej i uchwytu do pliku. questionmark.gifquestionmark.gif

Ten post edytował radmistrz2 23.05.2008, 15:05:31
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
nexis
post
Post #2





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

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


Nie rozumiem czemu w takim razie nie uruchomisz skrypt z cURL na komputerze, na który chcesz ściągnąć plik? Rozumiem, że nie chcesz stawiać serwera WWW, więc musisz conajmniej postawić serwer FTP, aby skrypt miał możliwość wgrania pliku na twój lokalny dysk. Drugim rozwiązaniem byłoby przekazanie pliku metodą POST na twój lokalny komputer, ale wtedy musiałbyś mieć serwer WWW z obsługą PHP, a wtedy z kolei mógłbyś skrypt uruchomić bezpośrednio na tej właśnie maszynie. winksmiley.jpg


--------------------
Zend Certified Engineer

Kliknij POMÓGŁ jeśli moja odpowiedź okazała się użyteczna!
Go to the top of the page
+Quote Post
radmistrz2
post
Post #3





Grupa: Zarejestrowani
Postów: 143
Pomógł: 4
Dołączył: 2.03.2008

Ostrzeżenie: (10%)
X----


Mam serwer www z obsługą php i td (full opcja - płatny) Skrypt, który pobiera plik na serwer i pokazuje link do pobranego pliku aby można było przesłać go na dysk mam. Problem w tym, że mam bardzo mały transfer na serwerze i chciał bym aby serwer tylko mnie logował na stronę a plik zapisywał bezpośrednio z tej strony na mój dysk bez użycia transferu na serwerze. Chodzi mi o to abym nie tylko ja, lecz i inni mogli pobierać.

Ten post edytował radmistrz2 23.05.2008, 15:32:18
Go to the top of the page
+Quote Post
nexis
post
Post #4





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

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


Zazwyczaj komercyjne serwery WWW liczą zarówno transfer do serwera (download) jak i od serwera (upload), więc twoje rozwiązanie za bardzo nic nie da.


--------------------
Zend Certified Engineer

Kliknij POMÓGŁ jeśli moja odpowiedź okazała się użyteczna!
Go to the top of the page
+Quote Post
radmistrz2
post
Post #5





Grupa: Zarejestrowani
Postów: 143
Pomógł: 4
Dołączył: 2.03.2008

Ostrzeżenie: (10%)
X----


Ta wiem, ale chodzi mi o coś takiego:
serwer1-mój serwer
serwer2 - nie mój serwer na którym sąpliki dostępne po zalogowaniu
dysk użytkownika - mój dysk w PC lub każdego innego gościa

1. Serwer1 loguje sie na strone na serwerze2.
2. Z serwera2 pobierają się pliki dostępne po zalogowaniu bezpośrednio na dysk użytkownika bez użycia transferu serwera1

Narazie plik pobieram na dysk serwera kodem:

  1. <?php
  2. ...
  3.  
  4. $link=convertstring($text);
  5. $fh = fopen($nazwa, 'w'); 
  6.  curl_setopt($ch, CURLOPT_URL, $link);
  7.  curl_setopt($ch, CURLOPT_USERAGENT, &#092;"Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)\");
  8.  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  9.  curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookie.txt');
  10.  curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__).'/cookie.txt');
  11.  curl_setopt($ch, CURLOPT_FILE, $fh);
  12.  curl_setopt($ch, CURLOPT_HEADER, 0);
  13.  curl_exec($ch);
  14.  fclose($fh);
  15.  echo 'http://'.$_SERVER['HTTP_HOST'].'/'.$nazwa.'
  16. ';
  17.  curl_close ($ch);
  18. ...
  19. ?>


Wszystko działa super, ale tak jak pisałem plik zapisuje się na dysk. Jak zmodyfikować skrypt tak, aby nie kopiował pliku na dysk tylko rozpoczynał pobieranie pliku na dysk użytkownika?

Ten post edytował radmistrz2 23.05.2008, 21:37:16
Go to the top of the page
+Quote Post
bim2
post
Post #6





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


Nie da się tak. Z poziomu strony nie masz dostępu do dysku użytkownika przeglądającego ta stronę. Jedyne co ci pozostaje to pokazanie linku do twojego serwera, skąd można ściągnąć plik lub przekierowanie na adres pliku na serwer2 :]


--------------------
Go to the top of the page
+Quote Post
radmistrz2
post
Post #7





Grupa: Zarejestrowani
Postów: 143
Pomógł: 4
Dołączył: 2.03.2008

Ostrzeżenie: (10%)
X----


właśnie chodzi mi o przekierowanie na serwer2. Jak to zrobić?
Go to the top of the page
+Quote Post
bim2
post
Post #8





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


Jeśli potrzebne są ciasteczka na tym serwerze to ci się nie uda. Musisz wykorzystać swój transfer. Przykro mi. Jeśli nie trzeba korzystać z ciasteczek to przekieruj na stronę jaki adres masz w curl.


--------------------
Go to the top of the page
+Quote Post
radmistrz2
post
Post #9





Grupa: Zarejestrowani
Postów: 143
Pomógł: 4
Dołączył: 2.03.2008

Ostrzeżenie: (10%)
X----


a z wykorzystaniem mojego transferu da się tak, aby najpierw nie trzeba było pobierać pliku tylko od razu użytkownik mógł pobrać pliki??
Go to the top of the page
+Quote Post
bim2
post
Post #10





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


Tak, usuń
curl_setopt($ch, CURLOPT_FILE, $fh);
i wyślij odpowiednie nagłówki (poszukaj w google jakie) , że przeglądarka ma pobrać plik. Pamiętaj, żeby nic nie wklejać ani nad plikiem ani pod. Strona musi być "czysta". :]


--------------------
Go to the top of the page
+Quote Post
radmistrz2
post
Post #11





Grupa: Zarejestrowani
Postów: 143
Pomógł: 4
Dołączył: 2.03.2008

Ostrzeżenie: (10%)
X----


ok dzięki. Pokombinujęz ob_start PS. Pod jakim wyrażeniem szukać w google??
Go to the top of the page
+Quote Post
icetab
post
Post #12





Grupa: Zarejestrowani
Postów: 226
Pomógł: 3
Dołączył: 3.04.2007

Ostrzeżenie: (50%)
XXX--


nie dziala mi zapisuje pusta strone :/

  1. <?php
  2. $fh = fopen($nazwa, 'w'); 
  3.  $ch = curl_init('http://rapidshare.com/files/113020998/Katie_Melua_-_Piece_By_Piece.part1.rar');
  4.  curl_setopt($ch, CURLOPT_URL, $link);
  5.  curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
  6.  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  7.  curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookies.txt');
  8.  curl_setopt($ch, CURLOPT_FILE, $fh);
  9.  curl_setopt($ch, CURLOPT_HEADER, 0);
  10.  curl_exec($ch);
  11. ?>


co poprawic ?

Ten post edytował icetab 2.06.2008, 23:00:04
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 Aktualny czas: 19.08.2025 - 09:18