Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wysyłanie plików
Forum PHP.pl > Forum > PHP
paawian
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ł
nospor
http://pl2.php.net/manual/pl/function.header.php
No i masz tam podane przyklady. w czym problem?
osl
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
pyro
header jak nie moze byc jak moze winksmiley.jpg?

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

// nospor i osl mnie ubiegli ;p
Vengeance
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. ?>
paawian
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..
nospor
a uzyles readfile() ?
paawian
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..
golaod
To znaczy dkładnie to, co znaczy. Sprawdź wymagania fpdf. Sprawdź wersję php w phpinfo i się dowiesz, co jest nie tak.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.