php progress bar für image upload

lakul

Grünschnabel
Hallo!

Ich benutze den folgenden Code um Bilder auf einen Server zu laden:

PHP:
<?php 

$path = "/mnt/am1/07/814/00000017/htdocs/domain/userimage/"; 
$max_size = 2000000; 

if (!isset($HTTP_POST_FILES['userfile'])) exit; 

if (is_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'])) { 

if ($HTTP_POST_FILES['userfile']['size']>$max_size) { /*echo "Ihre Datei ist zu groß<br>\n";*/ exit; } 
if (($HTTP_POST_FILES['userfile']['type']=="image/gif") || ($HTTP_POST_FILES['userfile']['type']=="image/pjpeg") || ($HTTP_POST_FILES['userfile']['type']=="image/jpeg")) { 

if (file_exists($path . $HTTP_POST_FILES['userfile']['name'])) { /*echo "Diese Datei exisiert bereits<br>\n";*/ exit; } 

$res = copy($HTTP_POST_FILES['userfile']['tmp_name'], $path . 
$HTTP_POST_FILES['userfile']['name']); 
if (!$res) { /*echo "Der Upload ist fehlgeschlagen!<br>\n";*/ exit; } else { /*echo "Der Upload war erfolgreich!<br>\n";*/ } 

/*echo "Bildname: ".$HTTP_POST_FILES['userfile']['name']."<br>\n"; 
echo "Picture size: ".$HTTP_POST_FILES['userfile']['size']." bytes<br>\n"; 
echo "Bildtyp: ".$HTTP_POST_FILES['userfile']['type']."<br>\n";*/ 
} else { /*echo "Falscher Dateityp!<br>\n";*/ exit; } 
} 

$fhd = fopen("test.txt", "w"); 
fwrite($fhd, $HTTP_POST_FILES['userfile']['name']); 
fclose($fhd); 

?> 

<html> 
<head> 
<title></title> 
<meta http-equiv="refresh" content="0; URL=http://www.domain.com/index2.php"> 
</head> 
<body> 
</body> 
</html>

Nun möchte ich gerne den Ladebalken aus der Datei im Anhang nutzen um auch den Ladestatus anzuzeigen. Ich bin Anfänger und leider verstehe ich die Anleitung nicht. Ich hoffe jemand ist bereit mir zu helfen. Es ist wahrscheinlich aufwendig.

Vielen DANK im Voraus

lakul

Anhang:

http://www.edv-internet.de/kostenloses/ProgressClass/download.php
 
Also - du lädst ja deine Datei hoch - die einfachste Möglichkeit wäre für dich: Lad dir von http://www.prototypejs.org Prototype runter - binde die Datei ein und frag über Javascript immer ein PHP Script auf dem Server, wie groß die Datei bereits ist ... Daraus kannste dann ja berechnen wieviel du noch hochladen musst ...

Also:
- Prototype einbinden.
- Neue PHP Datei anlegen, die nur die Größe der Datei ausließt und zurückgibt.
- Mit Javascript über Prototype die PHP Datei nach der Größe fragen
- Größe mit JS anzeigen.
 
Das Auslesen eines Dateiuploads ist alles andere als simpel, da temporäre Dateien in einem nicht erreichbaren Ordner liegen und man auch noch nicht weiß, welche Datei das ist.
Du hast aber glück und mit PHP5.2 wurde eine Möglichkeit implementiert den Fortschritt eines Uploads auszulesen, dies kannst du mittels APC tun, google wird dir einige Tutorials nennen.
 
Zurück