Upload mit Ladebalken

Hi,
ich bin dabei einen Upload für meine HP einzurichten. Erstmal die grundlegende Frage. Und zwar habe ich gelesen das es dafür mindestens PHP5.2 braucht. Auf bplaced.net steht PHP5. Ist das jetzt PHP5.0 oder besitzt der Server schon version 5.2??
Fals nicht würde sich das folgende erübrigen.

Also ich habe im Internet ein wenig gesucht und diesen schönen Script gefunden:

[code]<?php
if($SERVER[‘REQUEST_METHOD’]==‘POST’) {
$status = apc_fetch('upload
’.$_POST[‘APC_UPLOAD_PROGRESS’]);
$status[‘done’]=1;
echo json_encode($status);
exit;
} else if(isset($GET[‘progress_key’])) {
$status = apc_fetch('upload
’.$_GET[‘progress_key’]);
echo json_encode($status);
exit;
}
?>


[/code]

Wenn ich es bei mir hochlade und ausprobiere, bekomme ich, sobald ich auf Upload klicke, folgendes angezeigt:
Fatal error: Call to undefined function apc_fetch() in /users/gergaming/www/test/ladebalken.php on line 3

Da ich den Script leider nicht so richtig verstehe, kann ich mir nicht selbst helfen.
Weiß vielleicht jemand woran das liegt und kann mir helfen?

Hier auf bplaced läuft PHP 5.2.6.
Aber für den Ladebalken wird die extension apc benötigt, welche hier nicht installiert ist.

Och Schade :frowning:
Kann man den nicht irgendwie installieren? Wäre echt super.

OK ich habe per Mail gesagt bekommen, das dieses Update leider nicht drin ist.
Kann man den so einen Ladebalken auch anders verwirklichen? Es muss nicht unedingt ein balken sein, eine %-Anzeige würde mir ja schon reichen.
Wenn man das irgendwie in mein Uploadscript einfügen könnte, wäre das super.
upload.php:

[code]<?php
echo 'Erlaubte Dateitypen: rar, jpg, jpeg, gif
Maximale Dateigrosse: 20MB (20.971.520B)





';

if (isset($_POST[‘ok’]))
{
$tempname = $_FILES[‘datenei’][‘tmp_name’];
$name = $_FILES[‘datenei’][‘name’];
$type = $_FILES[‘datenei’][‘type’];
$size = $_FILES[‘datenei’][‘size’];

if($type != “image/gif” && $type != “image/jpeg” && $type != “application/x-rar-compressed” && $type != “application/rar” && $type != “application/x-compressed” && $type != “application/x-rar” && $type != “application/x-compressed” && $type != “compressed/rar” && $type != “application/zip”) {
$err[] = “Nur rar, jpg, jpeg und gif Dateien dürfen hochgeladen werden.”;
}
if($size > “20971520”) {
$err[] = “Die Datei welche du hochladen willst, ist zu gross!
Maximale Dateigrosse beträgt 20MB (20.971.520B)!
”;
}

if(empty($err)) {
copy("$tempname", “$name”);
echo “Die Datei $name wurde erfolgreich hochgeladen!”;
}
else {
foreach($err as $error)
echo “$error
”;
}
}
?>[/code]

Es gibt noch eine weitere extension, die heißt uploadprogress. Ich denke aber, die wird miro auch nicht installieren. Aber fragen kostet ja nichts. :slight_smile:
Demo mit der extension uploadprogress:
http://hummer.is-a-chef.net/upload_php_progress_bar
Du kriegst hier auf bplaced aber auch angezeigt, wieviel bytes bereits hochgeladen wurden: (Es gibt aber Probleme, wenn mehr als eine Datei gleichzeitig hochgeladen werden.)
http://hummer.bplaced.net/uploadprogress

WOW ich staune!!!
So einen schönen Upload hab ich selbst mach 4Stunden googlesuche nicht gefunden. Respekt.
Ich hab Miro mal eine Mail geschickt. Ich hoffe er akzeptiert es… Schauen wir mal.
Wenn nicht, könntest du mir vielleicht erklären wie ich rausbekomme wie viel schon hochgeladen wurde?
Mit JavaScript müsste es doch eigendlich möglich sein die Gesammtgröße der Datei herauszufinden, oder lieg ich da falsch?

Also…

Das Script, das hier auf bplaced.net läuft überprüft wahrscheinlich nur, welche Datei sich gerade im temp Ordner befindet und berechnet davon die Größe. Die (spätere) Gesammtgröße wird nicht/nur sehr schwer möglich zum berechnen sein. Dieser Upload bereitet aber Probleme, wenn 2 Dateien parallel hochgeladen werden, denn dann gibt’s mehr Dateien im temp Ordner…

Per “normalen” PHP und HTML/JS wirst du das nicht hinbekommen. Und miro wird sicher keine Erweiterung installieren. Du kannst aber auf Flash ausweichen. Es gibt z.B. für das JavaScript-Framework mootools ein Script, dass eine Uploadbar anzeigt. Dabei wird per JavaScript eine kleine Flash-Datei “gesteuert”…
Hier zu finden: digitarald.de/project/fancyuploa … hotoqueue/

Übrigens ist Mehrfachupload möglich. Falls du aber dann mootools NUR wegen diesem kleinen Tool in deine Website einbauen würdest, würde ich lieber nach einem anderen Flash-Upload suchen…

MfG
killerfaultier

Ich brauche nur eine Datei zum Upload. Mehere wären für meine Zwecke verschwendung der Zeit :smiley: .
Rausbekommen wie groß die momentane Temp Datei ist kann ich also?
Aber die gesammtgröße macht probleme richtig? Ich hätte gedacht das man sowas vielleicht mit JavaScript rauskriegen könnte.

du machst einfach beim Upload ein PHP-Script, dass den Upload-Namen an ein JS zurückgibt, das JS fragt dann bei einer anderen PHP-Datei an, die die Dateigröße des laufenden Uploads zurückgibt… (oder so)

Genau das geht eben nicht…
Das PHP-Script kann sich erst dann melden (und sagen, wie der Upload-Namen heisst), wenn die Datei hochgeladen wurde.
Möglich wäre, dass man den Upload startet, eine JS ruft zeitgleich ein PHP-Script auf, dass nach neuen temp-Daten schaut und sich die neue dann merkt und dann noch jede Sekunde ein Script, dass abruft, wie groß diese temp-Datei ist…
Da hätte man dann aber auch nicht die Gesammtgröße, sondern nur, wie viel hochgeladen wurde.

Einzige Sache ist die schon erwähnte PHP-Erweiterung, die zu den temp-Daten weitere Informationen sammelt, die man dann mit parallel laufenden PHP-Dateien aufrufen kann - u.a. auch die spätere Gesammtgröße.

MfG
killerfaultier

Moin,

// Edit: Links entfernt … manchmal hilft es, wenn man nicht verpennt Sachen liest … -.-’

Bei Google nichts dabei?

// Und noch n Edit:

Das hier sieht ganz vielversprechend aus …

MfG
myPages

Das ist auch ein Upload, der keinen Fortschrittsbalken hat…
Glaubt mir, es ist mit reinem PHP, HTML und JS nicht machbar!

Entweder man hat die Erweiterung für PHP oder man macht es mit Flash-Unterstützung… wie hier: digitarald.de/project/fancyuploa … hotoqueue/

MfG
killerfaultier

Hi,
wie könnte ich mir denn die bereits hochgeladene Größe der Datei anzeigen lassen (Einzelupload)?

du meinst das hier?

hier der Quellcode: (Readme.txt lesen!)
klick

das ganze stammt von http://www.devpro.it, habs nur bisschen modifiziert.

Nein ich meine keinen Balken der frei läuft.
Es soll anzeigen wie viel MB bzw. KB der datei bereits hochgeladen wurden.
Ihr sagt ja das Problem mit dem Ladebalken liegt daran, das man nicht herausbekommt wie groß die datei vorm upload is.
Also dachte ich mir ich lasse anzeigen wie viel schon hochgeladen wurde. Der “Uploader” weiß ja wie groß seine datei etwa ist.

ja genau das macht das Uploadscript doch, der Balken darunter ist nur was fürs Auge.

Ok stimmt. Das ganze scheint wohl nur mit Opera nicht zu funktionieren. Mit Firefox und IE gehts.
Ich werds mal probieren.

Unable to find server informations.

Sagt mir der Uploader.
Ich denke der findet mein Temp ordner nicht!?
Also ich hab die foldertest.php ausgeführt und die hat mir gesagt ich soll “/users/gergaming/temp” bei $tmp_dir eintragen. Das hab ich auch gemacht. Aber es funktioniert irgendwie nicht.

merkwürdig. Sicher, dass sich da auch kein Leerzeichen eingeschlichen hat beim Kopieren oder so?
sollte dann so aussehen:

Ja so hab ichs:
$tmpdir = ‘/users/gergaming/temp’;