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, 7150 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 ..
Ähnliche Inhalte
Mac OS X
gelöst Finale Dateigröße ohne Entpacken ermitteln (3)

Frage von pelzfrucht zum Thema Mac OS X ...

Datenbanken
gelöst MySQL Function Anzahl Datensätze ermitteln (4)

Frage von MultiStorm zum Thema Datenbanken ...

Visual Studio
gelöst SIDs eines Verzeichnisses ermitteln (1)

Frage von joehuaba zum Thema Visual Studio ...

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

Frage von SarekHL zum Thema Windows Tools ...

Heiß diskutierte Inhalte
Windows 7
gelöst BOOTMGR is missing (auch nach bootrec -RebuildBcd) (20)

Frage von Mipronimo zum Thema Windows 7 ...

Router & Routing
Tipps für Router (ca. 100 clients, VPN) (19)

Frage von oel-auge zum Thema Router & Routing ...

Windows Userverwaltung
Windows Freigabe: Zugriff auf alle Ordner trotz Sicherheitseinstellungen (17)

Frage von Pandreas zum Thema Windows Userverwaltung ...

TK-Netze & Geräte
gelöst Convert von TAPI auf CAPI gesucht (13)

Frage von StefanKittel zum Thema TK-Netze & Geräte ...