35801
Goto Top

Dateigröße für den Upload ermitteln

Ich möchte die Dateigröße vom Upload erlitteln und per Java-Script einen Countdown laufen zu lassen...

DANKE FÜR EURE HILFE!!!

Script:

<html>

<head>
<title>speed</title>
<meta http-equiv="expires" content="0">  
<meta http-equiv="pragma" content="no-cache">  
<meta http-equiv="cache-control" content="no-cache">  

<style type="text/css">  
<!--
textarea {
	border: 0px;
	background-color: White;
	color: White;
	overflow: hidden;
}

h1, h3{
	font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
}

body{
	font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
	padding: 0px;
	margin-top: 0px;
    margin-right: 0px;
    margin-bottom: 0px;
    margin-left: 0px;
}

a, a:active, a:focus, a:link, a:visited {
    font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
    font-weight: bold;
    font-style: normal;
    font-size: 10pt;
    text-decoration: none;
    color: #990000;
}
-->
</style>

<?PHP
	// Check auf Projekt-Daten
	if($pd == ""){  
		$upl = "faild";  
	}
	
	if ($_FILES['userfile']['size'] > 100000000){  
		$error .= 'Die max. erlaubte Dateigröße ist 95MB<br>';  
	}

	function microtime_float()
    {
        list($usec, $sec) = explode(" ", microtime());  
        return ((float)$usec + (float)$sec);
    }
?>

<script type="text/javascript">  
<!--
function send()
{
  <?PHP
    if($upl == ""){  
      echo "document.test.submit();";  
    }
  ?>
  //window.setTimeout("send();",100); 
}

function countdown()
{
	<?PHP
		$MB = $_FILES['userfile']['size'] / 1024 / 1024;  
        $UPLZEIT = round($MB * $z, 0);
	?>
	var zeit;
	zeit = <?PHP echo $UPLZEIT; ?>;
	alert ("text <?PHP echo $MB; ?>");  
	<?PHP
		if($MB > 0){ 
			echo 'document.infoform.infotext.value = ("Verbleibende Zeit: " + zeit.toString);';   
		}
	?>
	if($zeit < 1){
		zeit = "Verschiebe Daten in das Projektverzeichnis und führe Viren-Test druch. BITTE WARTEN!;	  
	}
	else{
		zeit--;
	}
	//window.setTimeout("countdown();",1000); 
}

function startall()
{
	send();
	countdown();
}
//-->
</script>

</head>

<?PHP

echo '<body bgcolor="#ffff99" text="#000000" link="#990000" vlink="#990000" alink="#990000" onLoad="startall();">';  
//echo '<body bgcolor="white" text="black" link="blue" vlink="purple" alink="red">'; 

echo '<font faca="Verdana, Arial">';  
echo '<div align="center">';  

echo '<table bgcolor="#ffffff" width="800" height="100%" cellspacing="0" cellpadding="0" style="margin: 0px 0px 0px 0px; padding: 0px;">';  
echo '<tr style="margin: 0px 0px 0px 0px; padding: 0px;" cellspacing="0" cellpadding="0">';  
echo '<td style="margin: 0px 0px 0px 0px; padding: 0px;" cellspacing="0" cellpadding="0" height="60" valign="top">';  

	echo '<img src="popup.gif"><br><br>';  

echo '</td></tr><tr><td valign="top">';  
  echo '<div align="left" style="margin: 5px 5px 5px 5px; padding: 5px;">';  

    if($upl == ""){  
        echo '<h1>Speed-Test läuft...</h1><br>';  
        echo '<h3>Bitte warten!!!</h3>';  
        echo 'Dies kann einige Zeit in Anspruch nehmen und ist zur Überprüfung der Funktionalität Ihres Browsers ';  
        echo 'und Ihrer Verbingung von nöten.<br>';  
        echo 'Hierbei werden automatisch generierte Testdaten an unseren Server übertragen.<br>';  
        echo 'Sollten Sie aufgefordert werden, die Datenübertragung zu erlauben, so Bestätigen Sie das bitte!<br><br>';  
        echo '<img src="uploading3.gif">';  
        echo '<form name="test" method="post" action="index.php?upl=test_ok&pd='.$pd.'">';  
        echo '<textarea readonly class="unsichtbar" name="test" cols="17" rows="2">SENDING TESTDATA... '."\n";  
        $j=0;
        for ($i = 0; $i < 1024*1024; $i++){
            $j++;
            echo $j;
            if($j > 8){ $j = 0; }
        }
        echo '</textarea>'."\n";  
        echo '<input type="hidden" value="'.microtime_float().'" name="startzeit">';  
        echo '</form>';  
    }
    elseif($upl == "test_ok") {  
        echo '<h1>Speed-Test beendet!</h1><br><br>';  

        //echo "<pre>".$test.'</pre><br>'; 
        $endzeit = microtime_float();
        $ZEIT = $endzeit - $startzeit;
        $ZEIT = $ZEIT * 1.15;
        $ZEIT = round($ZEIT, 2);
        //echo "<b>1MB braucht ".$ZEIT." sek.</b><br>"; 
        $KBS = 1024 / $ZEIT;
        $KBS = round($KBS, 2);
        //echo "<b>Ihre Verbindungsgeschwindigkeit: ".$KBS." KB/s</b><br>"; 
        $KBiS = $KBS * 8;
        $KBiS = round($KBiS, 0);
        //echo "<b>Ihre Verbindungsgeschwindigkeit: ".$KBiS." kBit/s</b><br><br>"; 
    	echo '<b><u>Daten für das Projekt pd_'.$pd.' hinzufügen:</u></b><br><br>';  
    	$z = $ZEIT;
        
        include("uploadform.inc");  
    }
    elseif($upl == "send"){  
		$uploaddir = "daten/".$pd."/";  
		$uploaded_file = $uploaddir . $_FILES['userfile']['name'];  
		if (file_exists($uploaddir))
		{
		    // Alles klar
		}
		else{
			if ( mkdir ($uploaddir, 0777 ) )
    	    {
 				// Alles klar
	        }
    	    else{
        		$error .= "Verzeichniss konnte nicht erstellt werden!<br>";  
	        }
        }
        
		if($error == ""){  
		    if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaded_file)) {  
                echo '<b><u>Daten für das Projekt pd_'.$pd.' hinzufügen:</u></b><br><br>';  
                include("uploadform.inc");  
                
                $MB = $_FILES['userfile']['size'] / 1024 / 1024;  
                $UPLZEIT = round($MB * $z, 0);
                //echo "<br><br><b>Upload läuft:</b><br>Voraussichtlich werden ".$UPLZEIT." Sek. benötigt..."; 
                
                echo '<b><u>Bereits vorhandene Daten:</u></b><br><br>';  
                
                if($dir=opendir($uploaddir)){
                    while($file=readdir($dir)){
                        if (!is_dir($file) && $file != "." && $file != ".."){  
                        	$tmpFILE = $uploaddir . $file;
                        	$groesse = filesize($tmpFILE);
                        	$groesse = round($groesse / 1024 / 1024, 2);
                            echo $file." (".$groesse." MB)<br>";  
                        }
                    }
                    closedir($dir);
                }
            }
        }
        else{
        	echo $error;
        }
    }
    else{
    	echo '<b><font color="#990000">Der Upload von Daten ist leider nicht direkt möglich!</font></b><br>';  
    	echo 'Bitte verwenden Sie zum Aufruf dieser Seite den entsprechenden Link auf ';  
    	echo '<b><a href="http://www.powerdruck.com"><font color="#000000">www.powerdruck.com</font></a></b><br>';  
    }

  echo '</div>';  
echo '</td></tr></table>';  

echo '</div>';  
echo '</font>';  



?>

</body>

</html>

Content-Key: 75318

Url: https://administrator.de/contentid/75318

Printed on: April 18, 2024 at 19:04 o'clock

Member: Arano
Arano Dec 06, 2007 at 19:05:12 (UTC)
Goto Top
Hallo Diaz

Ich möchte die Dateigröße vom Upload erlitteln und per Java-Script einen Countdown laufen zu lassen...
Okay, aber da du $_FILES['name']['size'] schon kennst frage ich mich was möchtest du von uns !?
$_FILES['name']['size'] soll übrigens manipulativ sein, von daher sollte man z.B. mit filesize() die wahre Größe nochmal überprüfen.

Vieleicht geht es nur mir so, aber ich habe probleme dein gepostetes Script zu verstehen. Daher bin ich auch ratlos was du genau möchtest !?

Was mir allerdings beim lesen aufviel:
<?php
  function microtime_float(){
          list($usec, $sec) = explode(" ", microtime());  
          return ((float)$usec + (float)$sec);
          }
?>
Mit microtime(TRUE) erreichst du das selbe..... oh, ich sehe gerade das das erst ab PHP5 möglich ist.
Support for PHP 4 will be discontinued at 2007-12-31. Please consider upgrading to PHP 5.2.

<?php
  $UPLZEIT = round($MB * $z, 0);
?>
Da frage ich mich doch gleich, was ist $z ? Das wird erst später im Script definiert, ist vorher also eigentlich noch nicht verfügbar.

Vieleicht medest du dich noch mal dazu.
Evtl. hift es auch das obere Script in einen PHP-Codeblock zu setzen.

Gruß Arano
Mitglied: 35801
35801 Dec 06, 2007 at 20:28:49 (UTC)
Goto Top
Danke für deine Tipps.

ABER...

1) Ich brauche die $_FILES['name']['size'] in dem Moment wo ich den absende Button drücke um den Java-Countdown zu starten und nicht erst wenn das Script ausgeführt ist.

2) Die $z wird in der .inc-Datei initialisiert.


LG,
Peter
Member: Arano
Arano Dec 06, 2007 at 20:56:26 (UTC)
Goto Top
juhuuu....

zu 1. Ist richtig so, ich wollte das auch mehr als Hinweis übermitteln, entschuldige bitte wenn das falsch rüberkam.

zu 2. Vieleicht übersehe ich was, aber auch der Include kommt erst später im Script !?

zu Algemein: Was funktioniert denn nicht ? Es fehlt immer noch eine Beschreibung des Problmen oder des Fehlers.

~Arano
Mitglied: 35801
35801 Dec 06, 2007 at 23:04:28 (UTC)
Goto Top
Ich bekomm die nette Varible mit der Dateigröße erst NACH!!! fertigem Upload...

Und dann beginnt der Countdown....

zB: 65MB = 15 Min. warten und dann Countdown von 15 Min. rückwärts...