System pobierania plików PHP MySQL
Skrypt wyświetla listę plików do pobrania.
Listing
//Skrypt tworzący listę plików do pobrania na podstawie informacji zawartych w bazie danych index.php
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-2">
<TITLE>Pobieranie plików</TITLE>
</HEAD>
<BODY><H3>
<?PHP
function printList()
{
if(!$link = mysql_connect("localhost", "login", "hasło")){
//echo("Problem z połączeniem z bazą danych.");
return;
}
if(!mysql_select_db("nazwa_bazy")){
//echo("Problem z połączeniem z bazą danych.");
mysql_close($link);
return;
}
$query = "SELECT ID, NAME FROM FILES";
if(!$result = mysql_query($query)){
//echo("Problem z bazą danych: odrzucone zapytanie");
mysql_close($link);
return;
}
while(($row = mysql_fetch_row($result)) != false){
$id = $row[0];
$file = $row[1];
if(($file = strrchr($file, "/")) == false)
continue;
$file = substr($file, 1, strlen($file));
echo("<A HREF=\"download.php?id=");
echo("$id\">$file</A><BR>");
}
mysql_close($link);
}
printList();
?>
</BODY>
</HTML>
//Skrypt wysyłający wybrany plik do przeglądarki download.php
<?PHP
function getFileName($id)
{
if(!$link = mysql_connect("localhost", "login", "hasło")){
//echo("Problem z połączeniem z bazą danych.");
return false;
}
if(!mysql_select_db("nazwa_bazy")){
//echo("Problem z połączeniem z bazą danych.");
mysql_close($link);
return false;
}
$query = "SELECT NAME FROM FILES WHERE ID='$id'";
if(!$result = mysql_query($query)){
//echo("Problem z bazą danych: odrzucone zapytanie");
mysql_close($link);
return false;
}
$row = mysql_fetch_row($result);
if(!$row){
//echo("Nie ma takiego wpisu w bazie");
mysql_close($link);
return false;
}
mysql_close($link);
return $row[0];
}
function send($name)
{
if(!file_exists($name)){
echo('Nie ma takiego pliku na serwerze!');
return false;
}
if(($fileName = strrchr($name, "/")) == false){
echo('Nie ma takiego pliku na serwerze!');
return false;
}
$fileName = substr($fileName, 1, strlen($fileName));
$fd = fopen($name,"r");
$size = filesize($name);
$contents = fread($fd, filesize($name));
fclose($fd);
header("Content-Type: application/octet-stream");
header("Content-Length: $size;");
header("Content-Disposition: attachment; filename=$fileName");
echo $contents;
}
if(isSet($_GET['id'])){
if(($name = getFileName($_GET['id'])) === false){
echo('Nie ma takiego pliku na serwerze!');
}
else{
send($name);
}
}
else{
echo('Nie ma takiego pliku na serwerze!');
}
?>
//Kod SQL dla tego skryptu
CERATE TABLE FILES(
ID INTEGER UNIQUE NOT NULL,
NAME VARCHAR(255) NOT NULL
)
Dodano przez: igor
Ranga: Administrator serwisu Punktów: 0
Ranga: Administrator serwisu Punktów: 0
Komentarze użytkowników
:: Losowe artykuły
:: Wymiana linków
Modowe inspiracje |
Android Gry i Aplikacje |
ZaplanujTransport.pl: Przeprowadzki, transport, aukcje |
Logo dla firmy |
Change Tires - Car Weather Forecast Reminder |
Laminas: MVC Framework for PHP |
IT Books Reviews and Programming: JS, JAVA, PHP, ANDROID, CSS |
Katalog roślin |
Programming articles: JAVA, PHP, C++, Python, JavaScript |
Kancelaria Adwokacka Łukasz Huszno