Problem mit Uploadscript?

S

SilverVegeto

Hy,
ich habe hier einen Script der es mir ermöglicht Dateien upzuloaden, jetzt möchte ich aber das bevor die Datei upgeloadet wird eine Überprüfung statt findet ob die Datei zu groß ist.

Die Variable $df ist die Größe die max. verbraucht werden darf.

PHP:
<?

if (is_file("./config.php")){
   include ("./config.php");
} else{
include ("./standartconfig.php");
}

if ($cname==$username){
 if ($cpassword==$password){
 } else {
    header("Location: index.php");
    exit;
 }
} else {
   header("Location: index.php");
   exit;
}


   if(!isset($dir)){$dir = "";}
   if(!isset($action)){$action="overview";}
   $workarray = split("/", $dir);
   $asize = sizeof($workarray);
   if($workarray[$asize-2] == "..") {$workarray = array_slice($workarray, 0, $asize-3);}
   else{}

   $wordir_temp = implode("/", $workarray);
   $rest = substr ($wordir_temp, -1);
   if($rest != "/"){$workdir = $wordir_temp."/";}
   else{$workdir = $wordir_temp;}

   $actualdir = $basedir.$thedir.$workdir;


   if($action=="up")
   {
      if ($upfile==none) {} else{
      if (!@copy ($upfile, $filedir.$upfile_name)){$if="<font color=red>Die datei Konnte nicht Hochgeladen werden $upfile_name...</font><br>";}
      else
      {
         $big = filesize($upfile);
         unlink($upfile);
         $if=$if."<font color=green>$upfile_name ($big bytes) Datei Erfolgreich Hochgeladen</font><br>";
      }}
      
      if ($upfile2==none) {} else{
      if (!@copy ($upfile2, $filedir.$upfile2_name)){$if=$if."<font color=red> Die datei Konnte nicht Hochgeladen werden $upfile2_name...</font><br>";}
      else
      {
         $big = filesize($upfile2);
         unlink($upfile2);
         $if=$if."<font color=green>$upfile2_name ($big bytes) Datei Erfolgreich Hochgeladen</font><br>";
      }}
      
      if ($upfile3==none) {} else{
      if (!@copy ($upfile3, $filedir.$upfile3_name)){$if=$if."<font color=red>Die datei Konnte nicht Hochgeladen werden $upfile3_name...</font><br>";}
      else
      {
         $big = filesize($upfile3);
         unlink($upfile3);
         $if=$if."<font color=green>$upfile3_name ($big bytes) Datei Erfolgreich Hochgeladen</font><br>";
      }}
      
      if ($upfile4==none) {} else{
      if (!@copy ($upfile4, $filedir.$upfile4_name)){$if=$if."<font color=red>Die datei Konnte nicht Hochgeladen werden $upfile4_name...</font><br>";}
      else
      {
         $big = filesize($upfile4);
         unlink($upfile4);
         $if=$if."<font color=green>$upfile4_name ($big bytes) Datei Erfolgreich Hochgeladen</font><br>";
      }}
      
      if ($upfile5==none) {} else{
      if (!@copy ($upfile5, $filedir.$upfile5_name)){$if=$if."<font color=red>Die datei Konnte nicht Hochgeladen werden $upfile3_name...</font><br>";}
      else
      {
         $big = filesize($upfile5);
         unlink($upfile5);
         $if=$if."<font color=green>$upfile5_name ($big bytes) Datei Erfolgreich Hochgeladen</font><br>";
      }}

   }
 
Hallo SilverVegeto,

alsooooooo, gibt da zwei Wege entweder du prüfst die Datei vor dem Hochladen oder nachdem sie oben ist.

Weg1:
kannst du nur mit HTML machen, setzt also vorraus das du HMTL für dein Uploadscript nimmst, weiß ja nicht wie du das machst (Also entweder hab ich jetzt keine Geduld gehabt das Script zu lesen oder habs übersehen :o))
Wenn HTML dann einfach nen verstecktes Feld
<input type="hidden" name="MAX_FILE_SIZE" value="maximale Dateigröße">
das wars dann schon :o)

Weg2:
du machst den Upload erstmal, prüfst dann die Datei auf dem Server auf ihre Größe mit filesize("vollständiger Pfad zur Datei\Dateiname"), vergleichst dann das Ergebnis mit deiner Variablen $df und wenns drüber liegt schmeißt es einfach wieder vom Server und gibst nen Fehlertext aus.

Ich würde Weg 1 vorziehen, denn wenn ich dir ne halbe Stunde 500MB hochladen würde, nur um dann zu erfahren das des wieder gelöscht hast weils zu groß war, würd ich mich fragen warum sagt er mir das nicht gleich :o)

Hoffe geholfen zu haben
 
Ja, es ist in HTML. Nur versteh ich nihct ganz wie du das meinst soll ich dir mal den ganzen Code schicken? Oder kann mir jemand anderes helfen?
 
Zuletzt bearbeitet von einem Moderator:
Es gibt keine Möglichkeit, die Dateigröße vor dem Upload zu überprüfen. Mit der Methode von Badboyws kannst du zwar theoretisch eine maximale Dateigröße angeben, aber ob sich der Client daran hält, ist wieder eine ganz andere Sache.
 
sooo, erstmal muss ich Oliver Recht geben, fest verbieten bzw vorgeben kannst das nicht.
mit dem HTML Feld, kannst es versuchen muss sich aber wie gesagt keiner dran halten, dann steht die Max File Size auch nochma in der php.ini, bei nem freien Webserver dürfte die Maximale Größer aber auch relativ hoch sein :o\

Bleibt also nur noch Warnung das nicht mehr als z.B. 2MB hochgeladen werden dürfen, wenns doch wer tut, einfach wieder runter vom Server.
So nach dem Motto: "Pech gehabt, wußtest es ja vorher"

achja, nochmal zu dem Tutorial, so eigentlich ist das ja mein zweiter Weg, aber wie gesagt, Traffic dämmt man damit nicht ein und löschen muss man das File dann immernoch.

Also ganz einfach gesagt => beschränken kannst es nur durch diese zwei Wege, wobei beide nicht 100%ig sicher und zufriedenstellend sind
 
Zurück