Download z list± rozwijan±

Download został wykonany w postaci wy¶wietlania nazw plików z listy rozwijanej i skryptu php, który pobiera index z tej listy i wykonuje download pliku na podstawie nazwy pliku z bazy mysql.

Tworzymy listę rozwijan± w postaci:

<form  action="download.php" method="post" enctype="multipart/form-data">

	    <select name="files_id" size="" style="font-size: 12px; width: 100%;">

		<option value="5800">Bliżej Sukcesu</option>
		<option value="4974">Bogać się, kiedy ¶pisz</option>
		<option value="5792">Bogaty Ojciec Biedny Ojciec dla młodzieży</option>
		<option value="5076">Bohater własnego życia</option>

	    </select><br /><br />

<input id="load" type="submit" value="Pobierz" />

</form><br />



Skrypt download.php :

<?php

$nr = $_POST["files_id"]; 

$nhost = "localhost";		// nazwa serwera mysql
$nbaza = "baza";		// nazwa bazy
$nuser = "user";		// nazwa użytkownika bazy
$npassword = "password";	// hasło użytkownika bazy

$baza = mysql_connect($nhost, $nuser, $npassword);
if ($baza) {
  $wynik = mysql_select_db($nbaza,$baza);
  if ($wynik) {
    $wynik = mysql_query("SELECT nazwa FROM tytuly WHERE id=$nr");
      if (($wynik)and(mysql_num_rows($wynik)>0)){
     	$pole=mysql_fetch_array($wynik);
	$nazwa = $pole["nazwa"];
	
	$filePath = "pliki/"; // nazwa katalogu z plikami, np.: pliki/
	$fileName = "$nazwa"; // przekazuje nazwę pliku z bazy np.: Blizej_sukcesu.pdf
	
	$fd = fopen($filePath.$fileName,"r");
	$size = filesize($filePath.$fileName);
	$contents = fread($fd, filesize($filePath.$fileName));
	
	fclose($fd);
	
	header("Content-Type: application/octet-stream");
	header("Content-Length: $size;");
	header("Content-Disposition: attachment; filename=$fileName"); 
	
	echo $contents;
    }  
    mysql_close($baza);
  }
}
?> 

Tworzymy bazę mysql baza, a w niej tabelę np. tytuly z polami, np. id typu int(4) i nazwa typu varchar(100).


[id][nazwa]
[5800][Blizej_sukcesu.pdf]
[4974][Bogac_sie_kiedy_spisz_-_fragment.pdf]
[5792][Bogaty_ojciec_biedny_ojciec_dla_mlodziezy_-_fragment.pdf]
[5076][Bohater_wlasnego_zycia_-_fragment.pdf]

Efekt działania możesz zobaczyć powyżej.