Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: mysql + php -> wyswietlenie linku do pliku znajdującego sie w bazie
Forum PHP.pl > Forum > Przedszkole
Gib0n
Witam,
Przeszukałem forum, googlowałem ale nic sensownego nie znalazłem przeto zapytuję.

Umieszczam plik .doc poprzez formularz w bazie mysql

i teraz wyswietlając wyszukane wyniki w układzie tabelarycznym w jednej kolumnie otrzymuję zawartość pliku .doc w postaci txt (no w sumie ok bo tak tam jest) ale potrzeba mi wyswietlic zamiast zawartości, link do tego pliku tak aby po kliknieciu na ten link można by plik zapisać na dysku lub otworzyć.

Byc moze jest to trywialne, ale jakośnie potrafię wpaść na rozwiązanie.

Z góry dziękuję.
uli
O ile się nie mylę zawartość pliku masz zapisaną w polu BLOB (lub LONGBLOB) w bazie. Stąd wynika, że plik fizycznie nie istnieje na serwerze. Więc pod linka podpinasz skrót do strony na której umieszczasz coś takiego:

  1. <?php
  2. $id_pliku = $_POST['id']; // to id to zmienna identyfikująca plik w bazie
  3.  
  4. // Łączenie się z bazą 
  5. // $db_table - tabela z plikami .doc
  6. // PRZYKŁADOWA STRUKTURA BAZY
  7. // id - pozycja w tabeli (klucz)
  8. // nazwa - nazwa pod jaką ma być zapisany plik (UWAZAJ - bez spacji: IE się wtedy sypie)
  9. // zawartosc - pole BLOB z zawartością pliku
  10.  
  11.  $zapytanie = "SELECT * FROM ".$db_table." WHERE id='$id_pliku'";
  12.  $wykonaj = mysql_query($zapytanie);
  13.  $wiersz = mysql_fetch_array($wykonaj);
  14.  
  15. $nazwa = $wiersz['nazwa'];
  16. $zawartosc = $wiersz['zawartosc'];
  17.  
  18. header ("Cache-Control: ");
  19. header ("Content-Type: application/octet-stream");
  20. header ("Content-Disposition: attachment; filename=$nazwa");
  21. header ("Content-Transfer-Encoding: binaryn");
  22.  
  23. echo "$zawartosc";
  24. ?>


Powyższy kod spowoduje wyświetlenie pobierania/otwarcia pliku po klinięciu na link.
Czy o to Tobie chodziło ?

Pozdrawiam
Uli

PS. LINIA 21 POWINNA BRZMIEĆ: header ("Content-Transfer-Encoding: binary\n");
Ucina mi to przy 'kolorowaniu'.
Gib0n
Dzięki serdeczne Uli dokładnie o to chodziło smile.gif
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.