Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Dateigröße für den Upload ermitteln...

Frage Entwicklung PHP

Mitglied: 35801

35801 (Level 1)

05.12.2007, aktualisiert 07.12.2007, 7138 Aufrufe, 4 Kommentare

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


DANKE FÜR EURE HILFE!!!



Scritp:
<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 "1MB braucht ".$ZEIT." sek.<br>";
$KBS = 1024 / $ZEIT;
$KBS = round($KBS, 2);
echo "Ihre Verbindungsgeschwindigkeit: ".$KBS." KB/s<br>";
$KBiS = $KBS * 8;
$KBiS = round($KBiS, 0);
echo "Ihre Verbindungsgeschwindigkeit: ".$KBiS." kBit/s<br><br>";
echo 'Daten für das Projekt pd_'.$pd.' hinzufügen:<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 'Daten für das Projekt pd_'.$pd.' hinzufügen:<br><br>';
include("uploadform.inc");

$MB = $_FILES['userfile']['size'] / 1024 / 1024;
$UPLZEIT = round($MB * $z, 0);
echo "<br><br>Upload läuft:<br>Voraussichtlich werden ".$UPLZEIT." Sek. benötigt...";

echo 'Bereits vorhandene Daten:<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 '<font color="#990000">Der Upload von Daten ist leider nicht direkt möglich!</font><br>';
echo 'Bitte verwenden Sie zum Aufruf dieser Seite den entsprechenden Link auf ';
echo '<a href="http://www.powerdruck.com;><font" color="#000000">www.powerdruck.com</font></a><br>';
}

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

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



?>

</body>

</html>
Mitglied: Arano
06.12.2007 um 20:05 Uhr
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:
01.
<?php 
02.
  function microtime_float(){ 
03.
          list($usec, $sec) = explode(" ", microtime()); 
04.
          return ((float)$usec + (float)$sec); 
05.
06.
?>
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.

01.
<?php 
02.
  $UPLZEIT = round($MB * $z, 0); 
03.
?>
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
Bitte warten ..
Mitglied: 35801
06.12.2007 um 21:28 Uhr
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
Bitte warten ..
Mitglied: Arano
06.12.2007 um 21:56 Uhr
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
Bitte warten ..
Mitglied: 35801
07.12.2007 um 00:04 Uhr
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...
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Mac OS X
gelöst Finale Dateigröße ohne Entpacken ermitteln (3)

Frage von pelzfrucht zum Thema Mac OS X ...

Windows Tools
Automatischer FTP-Upload ohne angemeldeten Benutzer (5)

Frage von SarekHL zum Thema Windows Tools ...

DNS
Hostnames für mehrere IPs ermitteln (3)

Frage von Oneil-1989 zum Thema DNS ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...