Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Download z pola select
Forum PHP.pl > Forum > PHP
Spyder
  1. <form action="<?=$_SERVER['PHP_SELF'] ?>" method="get" onchange="document.recruitment.submit()" name="recruitment" >
  2. <select name="recruitment">
  3. <option value="">For Recruitment...</option>
  4. <option value="1">Become a Person (.doc)</option>
  5. <option value="2">Become a Person (.pdf)</option>
  6. </select>
  7. </form>

  1. $host = $_SERVER['HTTP_HOST'];
  2. $uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
  3. $document1 = 'documents/Become_a_Person.pdf';
  4. $document2 = 'documents/Become_a_Person.doc';
  5.  
  6. if ($_GET['recruitment'] = 1) {
  7. header('Content-type: application/pdf');
  8. header("Content-Disposition: attachment; filename=\"http://$host$uri/$document1\""); }


Witam

Mam taki kod i nie wiem jak zrobic zeby po wybraniu z listy pliku altomatycznie zacznie mi sie jego pobieranie. Cos jak klikniecie w link.

Dzieki
maly_swd
  1. if ($_GET['recruitment'] == 1) {
  2. header('Content-type: application/pdf');
  3. header("Content-Disposition: attachment; filename=\"http://$host$uri/$document1\"");
  4.  
  5. header('Content-Length: ' . filesize($document1));
  6. readfile($document1);


pisane z palca, ale idea powinna byc chyba taka:)

ps. moze cos byc jeszcze posypane ze sciezkami do plikow

i miales blad logiczny: if($_GET['recruitment'] =1) <- to przypisalo do zmiennej 1 i zwrocilo true:)
a powinno byc if($_GET['recruitment'] == 1) wtedy sprawdza czy zmienna = 1 winksmiley.jpg

Spyder
Tak masz racje co do == to byla moja pomylka w tekscie. Sprawdzilem linki i wszystko jest ok ale nie pobiera mi pliku. Widac ze dochodzi do readfile($document1); bo wyswietla mi krzaki z pdfa. Jednak nie wyskakuje okienko czy chce pobrac plik?questionmark.gif
erix
A spróbuj wysłać przez MIME application/octet-stream.
Spyder
Niestety tez nie dziala...
erix
Nie działa, to znaczy?

Wklej kompletny skrypt, a nie kawałki.
Spyder
  1.  
  2.  
  3. <form action="<?=$_SERVER['PHP_SELF'] ?>" method="post" onchange="document.recruitment.submit()" name="recruitment" >
  4. <select name="recruitment">
  5. <option value="">For Recruitment...</option>
  6. <option value="1">Become a Person (.doc)</option>
  7. <option value="2">Become a Person (.pdf)</option>
  8. </select>
  9. </form>
  10.  
  11.  
  12. <?php
  13.  
  14. $host = $_SERVER['HTTP_HOST'];
  15. $uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
  16. $document1 = 'upload-files/Become_a_Person.doc';
  17. $document2 = 'upload-files/Become_a_Person.pdf';
  18.  
  19. if ($_POST['recruitment'] == 2) {
  20. header('Content-type: application/octet-stream');
  21. header("Content-Disposition: attachment; filename=\"http://$host$uri/$document2\"");
  22. header('Content-Length: ' . filesize($document2));
  23. readfile($document2);
  24. }
  25. ?>
  26.  


Wyswietla krzaki zamiast pobierania pliku.
erix
A wiesz o tym, że przed nagłówkami nie może być wysłana JAKAKOLWIEK treść?
23kulpamens
Tutaj masz przykład wysyłania pliku z php.net

kod wklej na początek skryptu, nie może być nawet spacji przed znacznikiem <?php

  1. <?php
  2. $file = 'monkey.gif';
  3.  
  4. if (file_exists($file)) {
  5. header('Content-Description: File Transfer');
  6. header('Content-Type: application/octet-stream');
  7. header('Content-Disposition: attachment; filename='.basename($file));
  8. header('Content-Transfer-Encoding: binary');
  9. header('Expires: 0');
  10. header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
  11. header('Pragma: public');
  12. header('Content-Length: ' . filesize($file));
  13. flush();
  14. readfile($file);
  15. }
  16. ?>
  17.  
Spyder
Dzieki za pomoc 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.