Hallo ihr lieben :'D
Könntet ihr bitte mein File_sharing_system begutachten und bewerten?
html-seminar.de/woltlab/attachment/329/ <-- download
unten stehen auch nochmal die codes:
COPYRIGHT PHIP
index.php:
HTML
<!DOCTYPE html>
<html>
<head>
<title>Startseite</title>
<meta charset="UTF-8">
</head>
<body>
<ul>
<li><a href="upload.php" title="Link zu upload.php" target="_blank">Uploaden</a></li>
<li><a href="download.php" title="Link zu upload.php" target="_blank">Downloaden</a></li>
</ul>
</body>
</html>
Alles anzeigen
upload.php:
PHP
<!DOCTYPE html>
<html>
<head>
<title>Upload</title>
<meta charset="UTF-8">
</head>
<body>
<form method="post" action="" enctype="multipart/form-data">
<input type="file" name="file_1"/><br />
<input type="file" name="file_2"/><br />
<input type="file" name="file_3"/><br />
<input type="file" name="file_4"/><br />
<input type="file" name="file_5"/><br />
<input type="file" name="file_6"/><br />
<input type="file" name="file_7"/><br />
<input type="file" name="file_8"/><br />
<input type="file" name="file_9"/><br />
<input type="file" name="file_10"/><br />
<input type="file" name="file_11"/><br />
<input type="file" name="file_12"/><br />
<input type="file" name="file_13"/><br />
<input type="file" name="file_14"/><br />
<input type="file" name="file_15"/><br />
<input type="file" name="file_16"/><br />
<input type="file" name="file_17"/><br />
<input type="file" name="file_18"/><br />
<input type="file" name="file_19"/><br />
<input type="file" name="file_20"/><br />
<input type="submit" name="button" />
</form>
<hr />
<?php
chmod("upload.php", 0757);
if( isset($_POST['button']) )
{
$anzahl_dateien = count($_FILES);
$anzahl_dateien += 1;
#die namen der inputs fangen bei 1 an, array's bei null. daher hier einfach eins mehr
#um auch alle input_files zu übernehmen
$i = 1;
while($i < $anzahl_dateien)
{
if( $_FILES['file_'.$i]['error'] == 0 )
#wenn kein fehler
{
if( !is_dir("files/") )
#wenn verzeichnis ne existiert
{
mkdir("files/", 0757);
}
$file[$i] = $_FILES['file_'.$i];
#verkürzung (neues array hat kürzeren namen :D)
$tmp_file_path = $file[$i]['tmp_name'];
$split = explode(".", $file[$i]['name']);
#hieraus nehme ich dann dateiname und dateitypen
/*---brauch ich nicht -> löschen um ram zusparen---*/
unset($file[$i]);
/*------------------------------------------------*/
$file_name = str_replace(" ", "_", array_shift($split));
#leerzeichen werden durch einen unterstrich ersetzt
$file_type = array_pop($split);
$file_type = strtolower($file_type);
if( $file_type == "zip" OR $file_type == "rar" )
{
move_uploaded_file($tmp_file_path, "files/".$file_name.".".$file_type);
}
}
$i++;
}
}
?>
<hr />
- nur .zip und .rar erlaubt
- Die Summe aller Dateigrößen darf 200mb nicht überschreiten.!
(kommt auf Server an [genauergesagt auf die php.ini-einstellungen kommt es an])
</body>
</html>
Alles anzeigen
download.php:
PHP
<!DOCTYPE html>
<html>
<head>
<title>Download</title>
<meta charset="UTF-8">
</head>
<body>
<?php
chmod("download.php", 0757);
function dateigroesse( $byte )
{
$kilobyte = bcdiv( $byte, 1024, 4 );
# die byte werden in kilo byte umgerechnet
# durch 1024, da maschienen immer 2 mal 2 mal 2... rechnen
# habe ich mal gehört^^
$megabyte = bcdiv( $kilobyte, 1024, 4 );
# megabyte werden berechnet
$megabyte .= " mb";
# der string " mb" wird noch angehangen
return( $megabyte );
# wert wird zurückgegeben
}
/*------------------------*/
echo "<table border='1'>";
echo "<tr><td>Dateiname</td><td>Dateigröße</td><td>Dateityp / Dateiendung</td><td>Downloadlink</td><td>löschen</td></tr>";
$verz = "files/";
# selbstsprechend
$handle = opendir($verz);
if( $handle )
# wenn das verzeichnis geöffnet wurde (kein fehler war)
{
while ( false !== ($file = readdir($handle)) )
{
if ( $file != "." and $file != ".." )
# nötig um die beiden ordner "." und ".." wegzukriegen
{
$file_size = filesize( $verz.$file );
# direkter pfad zur datei nötig
$file_size = dateigroesse( $file_size );
# funktionsaufruf (siehe zeile 10-25)
$split = explode( '.', $file );
$file_type = array_pop( $split );
$file_name = array_shift( $split );
echo "<tr>";
echo "<td>".$file_name."</td>";
echo "<td>".$file_size."</td>";
echo "<td>".$file_type."</td>";
echo "<td><a href='".$verz.$file."'>Download</a></td>";
echo "<td><a href='delete.php?file=".$file_name.".".$file_type."'>Klick mich</a></td>";
echo "</tr>";
}
}
closedir($handle);
}
echo "<tr><td><a href='delete.php?file=all'>Alle Dateien löschen</a></td></tr>";
echo "</table>";
?>
</body>
</html>
Alles anzeigen
delete.php:
PHP
<?php
chmod("delete.php", 0757);
$verz = "files/";
if( is_dir($verz) )
{
if( isset($_GET['file']) )
{
str_replace( "..", "", $_GET['file'] );
#damit mir keiner ein "../" machen kann und so in anderen ebenen löschen kann
if( $_GET['file'] == "all" )
{
$handle = opendir($verz);
if($handle)
{
while ( false !== ($file = readdir($handle)) )
{
if ( $file != "." and $file != ".." )
{
unlink($verz.$file);
}
}
}
closedir($handle);
#weiterleitung wenn alle dateien gelöscht wurden
header("location: download.php");
die();
}
elseif( file_exists($verz.$_GET['file']) )
{
unlink($verz.$_GET['file']);
#weiterleitung wenn datei X gelöscht wurde
header('Location: download.php');
die();
}
else
{
#weiterleitung wenn $_GET['file'] keine datei ist
header('Location: download.php');
die();
}
}
else
{
#weiterleitung wenn kein $_GET['file'] wert da ist
header('Location: download.php');
die();
}
}
else
{
#weiterleitung wenn kein "files/" ordner da ist und somit keine dateien zum löschen
header('Location: download.php');
die();
}
?>
Alles anzeigen