Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> mysql + php -> wyswietlenie linku do pliku znajdującego sie w bazie
Gib0n
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 2.08.2006

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


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ę.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
uli
post
Post #2





Grupa: Zarejestrowani
Postów: 318
Pomógł: 6
Dołączył: 27.01.2005

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


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'.

Ten post edytował uli 24.10.2006, 07:23:17


--------------------
Prawo Wylera:
Nie ma rzeczy niemożliwych dla kogoś, kto nie musi ich zrobić sam.
Go to the top of the page
+Quote Post
Gib0n
post
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 2.08.2006

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


Dzięki serdeczne Uli dokładnie o to chodziło smile.gif

Ten post edytował Gib0n 28.10.2006, 13:01:29
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 Aktualny czas: 21.08.2025 - 08:23