Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zwrócenie pliku pobranego cURL-em
trollman
post
Post #1





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 14.12.2012

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


Witam,
Mam taki problem, otóż pobrałem sobie cURL'em plik z serwera, jednakże zapisuje mi się on na razie na moim serwerze.
Macie Panowie jakieś sposoby jak wymusić aby otwrzyło się nam normalnie okno w przeglądarce gdzie zapisać plik gdy klient otworzy skrypt?

Poniżej ten skrypt co napisałem, zapisuje on pobrany plik do katalogu w którym znajduje sie skrypt php. A teraz jak uczynić jak ktoś otworzy np. www.mojastrona.pl/skrypt.php aby otworzyło mu sie okno z pobieraniem (te domyślne).

  1. $temp_file_contents = downloadPage($url);
  2. write_to_file($temp_file_contents,$title);
  3.  
  4. function downloadPage($url, $ref = ''){
  5.  
  6. $ch = curl_init();
  7. $userAgent = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)';
  8. curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);
  9. curl_setopt($ch, CURLOPT_URL, $url);
  10. curl_setopt($ch, CURLOPT_VERBOSE, 1);
  11. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  12. curl_setopt($ch, CURLOPT_AUTOREFERER, false);
  13. curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
  14. curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
  15. curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
  16. curl_setopt($ch, CURLOPT_HEADER, 1);
  17. $result = curl_exec($ch);
  18. curl_close($ch);
  19. return($result);
  20. }
  21.  
  22. function write_to_file($text,$new_filename){
  23. $fp = fopen($new_filename, 'w');
  24. fwrite($fp, $text);
  25. fclose($fp);
  26. }
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kartin
post
Post #2





Grupa: Zarejestrowani
Postów: 246
Pomógł: 79
Dołączył: 25.05.2010

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


Jeśli nie masz zamiaru wykorzystywać pliku później to nie potrzebnie go zapisujesz. Możesz od razu wysłać go do użytkownika:
  1. header('Content-Type: ' . $mime); //typ pliku, ostatecznie można dać application/octet-stream
  2. header('X-Content-Type-Options: nosniff');
  3. header('Content-Length: ' . $fileSize); //rozmiar wysyłanego pliku, ostatecznie można pominąć
  4. header('Content-Disposition: attachment; filename="' . $title . '"');
  5. echo $temp_file_contents;
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 28.12.2025 - 07:50