Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MSSQL][HTML][PHP] Pobieranie plikow PDF zamiast automatycznego otwierania w FF(IE)
Forum PHP.pl > Forum > Przedszkole
Kinslayer
Witam, jako iz jest to moj 1 post na tym forum pragnalbym sie przywitac smile.gif

Problem moj polega na tym, iz na stronce mam sporo plikow PDF pobieranych z bazy mysql.
Wszystko to jest przedstawione za pomoca kodu html/php i wyswietlone na stronce, jednakze uzytkownikowi po kliknieciu w linka do PDFa zostaje on automatycznie otworzony. Chcialbym aby pojawialo sie okienko zapisz jako.

Siedze juz od rana i szukam, testuje, ale niestety nie udalo mi sie nic sprawdzic sad.gif

Kod na stronce wyglada tak:
  1. <td style="border-bottom:1px solid #C5D3D9;"><a href="przetargi,'.$Przetarg['id'].',2.html" style="border:0;" onmouseover="return escape(\'Pobierz: Ogłoszenie przetargu\')"><img src="pliki/pdf.gif" alt="" style="border:0;" /></a></td>'.


Po najechaniu kursorem nad ikonke PDFa do pobrania link wyglada tak: http.... .pl/przetarg,124,2.html . Klikajac na to pobierany jest z bazy PDF. Czasem pliki maja po 20-30 MB i lepiej aby uzytkownik wiedzial czy sie on wogole pobiera czy co sie z nim dzieje smile.gif

Z gory dziekuje za wszelka pomoc.
thek
Jedno słowo: headers smile.gif
Kinslayer
No wlasnie tez na to trafialem, ale kod ktory znajdowalem byl bardzo zawily biggrin.gif, wkleje kod do mojej calej podstrony. Moze to cos pomoze smile.gif

  1. <h1>Przetargi</h1>
  2. <p><a href="http://www.adobe.com/products/acrobat/readstep2.html">Przeglądarka plików PDF</a></p>
  3.  
  4. <center>
  5. <table cellpadding="6" cellspacing="0" style="width:540px; margin:20px auto;">
  6. <?
  7. if (!isset($_GET['item']))
  8. {
  9. $PrzetargDB = mysql_query("SELECT * FROM przetargi ORDER BY date_exp DESC, time_exp ASC;");
  10.  
  11. $Numer = 1;
  12. while ($Przetarg = mysql_fetch_array($PrzetargDB))
  13. {
  14. $Data_z = date('d.m.Y', strtotime(substr($Przetarg['date_add'], 0, 10)));
  15. $Data_p = date('d.m.Y', strtotime(substr($Przetarg['date_exp'], 0, 10)));
  16. $Godz_p = date('H:i', strtotime(substr($Przetarg['time_exp'], 0, 10)));
  17.  
  18. echo '<tr>'.
  19. ' <td style="border-bottom:1px solid #C5D3D9; width:15px;" valign="top" rowspan="2">'.$Numer.'.</td>'.
  20. ' <td valign="top"><a href="przetargi,'.$Przetarg['id'].',2.html"><b>'.$Przetarg['name'].'</b></a> <span class="licznik-pobran">('.$Przetarg['licznik'].')</span><br /><span style="font-size:11px;">'.$Przetarg['topic'].'</span></td>'.
  21. ' <td><a href="przetargi,'.$Przetarg['id'].',1.html" style="border:0;" onmouseover="return escape(\'Pobierz: SIWZ\')"><img src="pliki/pdf.gif" alt="" style="border:0;" /></a></td>'.
  22. ' <td><font size="2"><a href="przetarg'.$Przetarg['id'].'.html"> Zapytania i odpowiedzi</a></font> </td> '.
  23. '</tr>'.
  24.  
  25. '<tr>'.
  26. ' <td style="border-bottom:1px solid #C5D3D9; font-size:11px;" valign="top">Data zamieszczenia: '.$Data_z.'<br />Data przetargu: '.$Data_p.', godz. '.$Godz_p.'</td>'.
  27. ' <td style="border-bottom:1px solid #C5D3D9;"><a href="download.php?plik=docs/przetargi,'.$Przetarg['id'].',2.html" style="border:0;" onmouseover="return escape(\'Pobierz: Ogłoszenie przetargu\')"><img src="pliki/pdf.gif" alt="" style="border:0;" /></a></td>'.
  28. '</tr>';
  29.  
  30. $Numer++;
  31. }
  32. }
  33. else
  34. {
  35. if (isset($_GET['subitem']))
  36. {
  37. if (preg_match("/^[0-9]+$/", $_GET['item']))
  38. {
  39. $PrzetargDB = mysql_query("SELECT * FROM przetargi WHERE id = '{$_GET['item']}';");
  40. $Przetarg = mysql_fetch_array($PrzetargDB);
  41.  
  42. $Licznik = ++$Przetarg['licznik'];
  43.  
  44. mysql_query("UPDATE przetargi SET licznik = '$Licznik' WHERE id = '{$_GET['item']}';");
  45.  
  46. if ($_GET['subitem'] == 1)
  47. {
  48. header("Location: <a href="http://www.rwik.pl/docs/przetargi/&quot;" target="_blank">http://www.rwik.pl/docs/przetargi/"</a> . $Przetarg['link_1']);
  49. }
  50. elseif($_GET['subitem'] == 2)
  51. {
  52. header("Location: <a href="http://www.rwik.pl/docs/przetargi/&quot;" target="_blank">http://www.rwik.pl/docs/przetargi/"</a> . $Przetarg['link_2']);
  53. }
  54. else
  55. {
  56. header("Location: przetargi.html");
  57. }
  58. }
  59. else
  60. {
  61. header("Location: przetargi.html");
  62. }
  63. }
  64. else
  65. {
  66. header("Location: przetargi.html");
  67. }
  68.  
  69. }
  70.  
  71. ?>
  72. </table>
  73. </center>
thek
Powiem więcej... Temat już był na forum. Wystarczyło poszukać -> http://forum.php.pl/index.php?showtopic=55893 i masz tam JAK zrobić wymuszenie zapisu. Aczkolwiek zapamiętaj, że to czy zapisze czy otworzy to decyzja użytkownika lub zdefiniowanych ustawień przeglądarki. Dlatego ja bym ostrzegał przed pobraniem ile plik waży.
Kinslayer
Ok znalazlem, jednakze, nie wiem gdzie to u mnie wstawic w kodzie, sie pogubilem smile.gif Prosze o pomoc smile.gif

  1.  
  2. <?php
  3.  
  4. // przesyłamy plik PDF
  5.  
  6. header('Content-type: application/pdf');
  7.  
  8. // ustawiamy jego nazwę na downloaded.pdf
  9.  
  10. header('Content-Disposition: attachment; filename="downloaded.pdf"');
  11.  
  12. // treść znajduje się w pliku original.pdf
  13.  
  14. readfile('original.pdf');
  15. ?>


thek
Nagłówki ustawia się przed wysłaniem czegokolwiek do przeglądarki. W Twoim przypadku musisz to zrobić w pliku, który odpowiada za wysyłkę pliku do usera, czyli to co kryje się za wywołaniem "tajemniczego" przetarg,124,2.html winksmiley.jpg
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.