Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Wysyłanie plików
paawian
post 9.06.2009, 11:06:26
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 7.06.2009

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


jak wysłać plik za pomocą PHP? chodzi mi o wysłanie pliku z serwera do użytkownika,
nie może to być zwyczajny header, bo będą to pliki txt lub pdf a firefox je otworzy zamiast odebrać

ewentualnie może być rozwiązanie w JavaScript

znalazłem funkcje http_send_file() i http_throttle() ale serwer wyrzuca mi "undefined function" i nie mam
pojęcia jak to zrobić by je rozpoznał
Go to the top of the page
+Quote Post
nospor
post 9.06.2009, 11:09:29
Post #2





Grupa: Moderatorzy
Postów: 36 452
Pomógł: 6292
Dołączył: 27.12.2004




http://pl2.php.net/manual/pl/function.header.php
No i masz tam podane przyklady. w czym problem?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
osl
post 9.06.2009, 11:10:04
Post #3





Grupa: Zarejestrowani
Postów: 260
Pomógł: 41
Dołączył: 6.04.2009
Skąd: Gdańsk/okolice

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


dlaczego nie może być zwykły header?
może, tyle że odpowiedni winksmiley.jpg
Można zmusić headerami przeglądarkę do zapisania pliku zamiast otwierania.

Edit: nospor mnie ubiegł winksmiley.jpg

Ten post edytował osl 9.06.2009, 11:10:35
Go to the top of the page
+Quote Post
pyro
post 9.06.2009, 11:10:36
Post #4





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


header jak nie moze byc jak moze winksmiley.jpg?

Wystarczy podać Content-type: application/octet-stream

// nospor i osl mnie ubiegli ;p

Ten post edytował pyro 9.06.2009, 11:11:06


--------------------
ET LINGUA EIUS LOQUETUR IUDICIUM
Go to the top of the page
+Quote Post
Vengeance
post 9.06.2009, 11:11:20
Post #5





Grupa: Zarejestrowani
Postów: 657
Pomógł: 2
Dołączył: 15.08.2003
Skąd: Łódź

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


Daj header, ale nie txt czy pdf, tylko ogólny - firefox nie rozpozna i pokaże okienko do pobierania.

Coś ala to, przykład z manuala:
  1. <?php
  2. header("Pragma: public");
  3.      header("Expires: 0");
  4.      header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
  5.      header("Cache-Control: private",false);
  6.      header ( "Content-Type: application/octet-stream" );
  7.      header("Content-Disposition: attachment; filename=\"".$nazwa_pliku."\";");
  8.      header("Content-Transfer-Encoding:­ binary");
  9.      header("Content-Length: ".$filesize);
  10.  readfile($file);
  11. ?>


--------------------
Go to the top of the page
+Quote Post
paawian
post 9.06.2009, 11:33:06
Post #6





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 7.06.2009

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


Cytat(pyro @ 9.06.2009, 12:10:36 ) *
header jak nie moze byc jak moze winksmiley.jpg?

Wystarczy podać Content-type: application/octet-stream

// nospor i osl mnie ubiegli ;p


to co napisałeś nic mi nie pomogło ale i tak dzięki,
dałem tak:

  1. <?php
  2. header("Content-type: application/txt");
  3. header("Content-Disposition: attachment; filename=plik.txt");
  4. ?>


ale wysyła to do mnie pusty plik.txt o rozmiarze 4B..
Go to the top of the page
+Quote Post
nospor
post 9.06.2009, 11:35:59
Post #7





Grupa: Moderatorzy
Postów: 36 452
Pomógł: 6292
Dołączył: 27.12.2004




a uzyles readfile() ?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
paawian
post 9.06.2009, 23:24:08
Post #8





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 7.06.2009

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


Cytat(nospor @ 9.06.2009, 12:35:59 ) *
a uzyles readfile() ?

ahe ale głupek ze mnie..
dzięki

  1. <?php
  2. $file=fopen("plik.txt",w);
  3. fwrite($file,"Twoje zamówienie: r\n");
  4. fwrite($file,"Transfer: ".$transfer."r\n");
  5. fwrite($file,"Pojemność: ".$pojemnosc."r\n");
  6. fwrite($file,"Cena: ".$cena."r\n");
  7. fclose($file);
  8.  
  9. header("Content-type: application/txt");
  10. header("Content-Disposition: attachment; filename=plik.txt");
  11. readfile('plik.txt');
  12. ?>


ten kod działa tylky gdy odpalę go z localhost, wrzucony na osobny serwer już nie chce działać (żadnego błędu),
jakieś sugestię?

i jeszcze jeden problem..

  1. <?php
  2. define('FPDF_FONTPATH','font/');
  3. require('fpdf.php');
  4. $pdf=new FPDF();
  5. $pdf->Open();
  6. $pdf->AddPage();
  7. $pdf->AddFont('arialpl','','arialpl.php');
  8. $pdf->SetFont('arialpl','', 12);
  9. $pdf->Write(10,"Twoje zamówienie: ");
  10. $pdf->Write(10,"Transfer: ".$transfer);
  11. $pdf->Write(10,"Pojemność: ".$pojemnosc);
  12. $pdf->Write(10,"Cena: ".$cena);
  13. $pdf->Output();
  14. echo "Wygenerowany plik pdf";
  15. ?>


przy tym localhost wyświetla mi, że "This version of PHP is not supported."
a osobny serwer nic nie wyświetla i nic się nie dzieje..
Go to the top of the page
+Quote Post
golaod
post 10.06.2009, 08:15:46
Post #9





Grupa: Zarejestrowani
Postów: 419
Pomógł: 42
Dołączył: 12.08.2008
Skąd: Wrocław

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


To znaczy dkładnie to, co znaczy. Sprawdź wymagania fpdf. Sprawdź wersję php w phpinfo i się dowiesz, co jest nie tak.
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: 23.04.2024 - 15:11