Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Skrypt pobieranie pliku z serwera
klima06
post
Post #1





Grupa: Zarejestrowani
Postów: 48
Pomógł: 10
Dołączył: 21.10.2011
Skąd: UK / PL

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


Witam!
Mam skrypt, gdzie użytkownik zalogowany po kliknięciu w link może pobrać dla niego dostępny plik.
W przeglądarce wchodząc w link wyświetla się strona z FireFox'a "Nie odnaleziono pliku", zaś po kliknięciu prawy > zapisz jako, plik jest poprawnie zapisany i potem bez problemu można go otworzyć.

Kawalek skryptu:
  1. $fullPath = 'files/order_1.pdf';
  2. $fsize = filesize($fullPath);
  3. header("Content-type: application/pdf");
  4. header("Content-Disposition: attachment; filename=order_1.pdf");
  5. header("Content-Length: $fsize");
  6. @readfile($fullPath);


Go to the top of the page
+Quote Post
rocktech.pl
post
Post #2





Grupa: Zarejestrowani
Postów: 587
Pomógł: 131
Dołączył: 8.02.2010

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


Witam.

Spróbuj obiektowo ...

  1. $file = new SplFileObject('files/order_1.pdf', "rb");
  2.  
  3. //Content-Type nie Content-type to ważne
  4. header("Content-Type: application/pdf");
  5. header("Content-Disposition: attachment; filename=" . $file->getBasename());
  6. header("Content-Length: " . $file->getSize());
  7.  
  8. $file->fpassthru();


Ten post edytował rocktech.pl 10.10.2012, 14:11:04
Go to the top of the page
+Quote Post
klima06
post
Post #3





Grupa: Zarejestrowani
Postów: 48
Pomógł: 10
Dołączył: 21.10.2011
Skąd: UK / PL

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


Niestety dalej to samo, może wina leży po stronie .htaccess, albo serwera OVH ?
  1. Options -Indexes
  2. RewriteEngine On
  3. RewriteBase /
  4. RewriteCond %{REQUEST_FILENAME} !-f
  5. RewriteCond %{REQUEST_FILENAME} !-d
  6. RewriteRule ^(.*)$ index.php/$1 [L]


@edit
Dodam, że na XAMPP'ie na localhost'cie działa wszystko ok, tylko na OVH jest z tym problem.

Ten post edytował klima06 10.10.2012, 14:23:30
Go to the top of the page
+Quote Post
rocktech.pl
post
Post #4





Grupa: Zarejestrowani
Postów: 587
Pomógł: 131
Dołączył: 8.02.2010

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


A pokaż jak budujesz link? Spróbuj dać bezwzględną ścieżkę do pliku.
Go to the top of the page
+Quote Post
klima06
post
Post #5





Grupa: Zarejestrowani
Postów: 48
Pomógł: 10
Dołączył: 21.10.2011
Skąd: UK / PL

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


To jest mój index.php, do którego wszystkie wywołania są przekierowane i on ładuje odpowiednie klasy, metody ze zmiennymi:
  1. $url = $_SERVER['REQUEST_URI'];
  2. $array_tmp_url = preg_split('[\\/]', $url, -1, PREG_SPLIT_NO_EMPTY);
  3. $array_url['controller'] = '';
  4. $array_url['method'] = '';
  5. $array_url['var'] = '';
  6. if(isset($array_tmp_url[0]))
  7. $array_url['controller'] = $array_tmp_url[0];
  8. if(isset($array_tmp_url[1]))
  9. $array_url['method'] = $array_tmp_url[1];
  10. if(isset($array_tmp_url[2]))
  11. $array_url['var'] = $array_tmp_url[2];


Zmiana ścieżki również nie pomaga.

@edit
Chyba jedyne wyjście to nie trzymanie się MVC w tym przypadku i zrobić sobie plik .php, który to wszystko obsłuży i sprawdzi, bo w tym wypadku mi to działa.

Ten post edytował klima06 10.10.2012, 16:48:29
Go to the top of the page
+Quote Post

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: 15.09.2025 - 02:16