Hallo zusammen,
kann mir jemand sagen ob es eine upload-Funktion mit fortschrittsbalken gibt?
Bzw. wie man einen in eine bestehende Ext. einbauen kann.
Ich habe im Moment fileupload installiert.
Gruß
Stefan
Hallo zusammen,
kann mir jemand sagen ob es eine upload-Funktion mit fortschrittsbalken gibt?
Bzw. wie man einen in eine bestehende Ext. einbauen kann.
Ich habe im Moment fileupload installiert.
Gruß
Stefan
Hi Stefan,
sowas gibts meines Wissens nach nicht
sorry
georg
Hallo just2b,
ich habe inzwischen folgendes versucht und zwar die ProgressClass v1.0 in fileupload einzubinden.
Kennst Du dich in php etwas aus ???
http://www.edv-internet.de/kostenloses/ProgressClass/
das ist die Seite von ProgressClass
Für das kenn ich mich zuwenig aus, hab aber auch nicht vor, das zu implementieren
lg georg
na ich werde es mal versuchen und das ergebnis posten.
Gruß
Stefan
sinnloses Unterfangen,
aber viel Spaß dabei 😉
wieso sinnlos ???
Es sieht doch für den Kunden besser aus wenn er größere Dateien hochladen muss, wie der Status ist als monoton auf den Bildschirm zu starren.
also wenn da deinerseits noch nachfrage besteht, würde ich mich bereit erklären das ganze einzubinden.
Wenn du auch Ext schreibst, können wir das ja auch zusammen machen.
Beste,
Tim
hey super,
heute mittag mach ich daran weiter.
habe schon ein paar sachen gemacht die ich Dir später (so gegen 12.00 Uhr) poste OK.
Gruß
Stefan
Ich fange mal an...
Die Extension fileupload installieren
Runterladen ProgressClass
http://www.edv-internet.de/kostenloses/ProgressClass/
Die Dateien ProgressClass.php sowie js.inc.php nach /typo3conf/ext/fileupload/pi1 kopieren
Die Datei browscap.ini runterladen und ich gehe von Linux aus in /usr/local/lib stellen
http://www.garykeith.com/browsers/browscap.asp
Dann in der php.ini nach browscap suchen und diesen Eintrag auskommentieren. Wenn dieser nicht drinstehen sollte folgendermaßen eintragen.
[browscap]
browscap = usr/local/lib/browscap.ini
apache neu starten
öffnen der datei class.tx_fileupload_pi1.php unter /typo3conf/ext/fileupload/pi1 und folgendes abändern
oben in Zeile 31 unter
require_once(PATH_tslib."class.tslib_pibase.php");
folgendes einfügen
require('ProgressClass.php');
Zeile 69
function handleUpload(){
global $TYPO3_CONF_VARS;
$content='';
$path = '';
if($this->conf['path']){
$path=$this->cObj->stdWrap($this->conf['path'],$this->conf['path.']);
}
$uploaddir = is_dir($path)?$path:$TYPO3_CONF_VARS['BE']['fileadminDir'];
//if file should be uploaded to the login users homedir
if(intval($this->conf['FEuserHomePath'])==1 && $GLOBALS["TSFE"]->loginUser){
$feuploaddir=$uploaddir.$GLOBALS["TSFE"]->fe_user->user[($this->conf['FEuserHomePath.']['field'] ? $this->conf['FEuserHomePath.']['field'] : 'uid')].'/';
if(!is_dir($feuploaddir)){
if(!mkdir($feuploaddir)){
$feuploaddir=$uploaddir;
}
}
$uploaddir = $feuploaddir;
}
$uploadfile = $uploaddir.$_FILES[$this->uploadid]['name'];
abändern zu
function handleUpload(){
global $TYPO3_CONF_VARS;
$content='';
$path = '';
if ($break) {
echo '<p class="normal"><b><font color="red">Aktion abgebrochen.</font></b></p></body></html>';
exit();
}
$progress=new ProgressClass();
$progress->setButton('Abbrechen',"$PHP_SELF?break=1");
$progress->setLabel('Download durchführen...');
$progress->make();
if($this->conf['path']){
$path=$this->cObj->stdWrap($this->conf['path'],$this->conf['path.']);
}
$uploaddir = is_dir($path)?$path:$TYPO3_CONF_VARS['BE']['fileadminDir'];
//if file should be uploaded to the login users homedir
if(intval($this->conf['FEuserHomePath'])==1 && $GLOBALS["TSFE"]->loginUser){
$feuploaddir=$uploaddir.$GLOBALS["TSFE"]->fe_user->user[($this->conf['FEuserHomePath.']['field'] ? $this->conf['FEuserHomePath.']['field'] : 'uid')].'/';
if(!is_dir($feuploaddir)){
if(!mkdir($feuploaddir)){
$feuploaddir=$uploaddir;
if ($break) {
echo '<p class="normal"><b><font color="red">Aktion abgebrochen.</font></b></p></body></html>';
exit();
}
$progress->setBarColor('#'.dechex(100-$i+156).dechex($i+80).'00');
$progress->setLabel('Fertig!');
sleep(1);
$progress->hide();
}
}
$uploaddir = $feuploaddir;
}
$uploadfile = $uploaddir.$_FILES[$this->uploadid]['name'];
aktuallisiern auf dem Webserver und zuvor von der alten class.tx_fileupload_pi1.php vorsichtshalber eine Sicherung machen.
So weit bin ich bis jetzt und was kam raus ?
Die Statusbar öffnet sich beim uploaden der upload funktioniert aber folgendes noch nicht richtig:
a) Warning: Cannot modify header information - headers already sent by (output started at /srv/www/htdocs/bkl/typo3conf/ext/fileupload/pi1/js.inc.php:25) in /srv/www/htdocs/bkl/tslib/class.tslib_fe.php on line 2612
b) Die Statusbar zähl die Prozente noch nicht
Ihr könnt ruhig Tips geben
Gruß
Stefan
Ich kenn zwar das Skipt nicht, aber ich bezweifle mal, daß es korrekte Ergebnisse liefern kann: Es ist im HTML-Standard nich vorgesehen, daß der Browser übermittelt, wieviele Daten schon verschickt wurden.
Außerdem empfängt erst der Web-Server die Datei, bevor er sie an PHP-weitergibt. PHP kann also erst darauf reagieren, wenn die Datei bereits auf dem Server liegt.
hättest Du einen Vorschlag ?
stefansvw schriebhättest Du einen Vorschlag ?
für was?
ob es noch andere Möglichkeiten gibt einen Fortschrittsbalken in diese Extension zu bringen
Über das HTTP-Protokoll ist es AFAIK nicht möglich.
Das einzige was mir einfallen würde wär der Upload mit FTP, bzw. Java.
Hallo,
Ich kenne es so das beim Upload die temp datei ab und zu auf größe überprüft wird und dadurch die prozente angezeigt werden.
MFG
ich kann das ganze grade weder Testen noch ausprobieren oder dergleichen!
Aber zu deinen fragen:
a.) Kommt der Fehler erst beim Upload, oder schon wenn das Formular da ist?
b.) Guck mal ob die ProgressClass.php da werden alle änderungen eifnach mittels echo und der passenden js datei ausgegeben.
So wie die Klasse aussieht kann man den gedanken getrost wieder vergessen, weil man bei Typo3 ja nicht flushen kann, und das wäre die einzige möglichkeit das ganze beweglich zu machen.
So weit ich weiß gibt es auch java-plugins (nicht java script) die solche funktionen haben.
Beste,
Tim
Hab mir dazu grade das mal angeschaut.
http://www.radinks.com/downloads/upload.php
Das ist je eigendlich genau das was du suchst.
Nur das doofe ist das diese Java Klasse nicht ganz free ist.
Aber vielleicht findeste ja was ähnliches....
MfG,
Tim
ich habe mich jetzt auch mal ein bischen dadran versucht.
Lokal läuft es sogar, nur aufem Server zickt der ein bischen.
http://www.fruit-lab.de/T3X_fl_comfort_upload-0_0_0-200511030955.t3x
(Rechtsklick Speichern unter)
oder Zip:
http://www.fruit-lab.de/T3X_fl_comfort_upload-0_0_0-200511030955.zip
in der javaUpload.php muss dann noch der Pfad angepasst werden.
mit der uploadTest.html kann man dann den Upload testen.
Vielleicht spinnt das Plugin auch ein wenig :-)
MfG,
Tim
boonkerz schriebHallo,
Ich kenne es so das beim Upload die temp datei ab und zu auf größe überprüft wird und dadurch die prozente angezeigt werden.
MFG
Und wie soll das technisch funktionieren?
Wenn du eine Datei per HTTP hochlädst, dann wird der PHP-Code der an dem Formular dranhängt doch erst nach dem Upload ausgeführt. Der kann also nur die endgültige Größe zurückgeben.
Könnte man sowas machen, geht das schon gar nicht im selben Fenster wie der Upload: Das HTTP-Protokoll ist nicht interaktiv.
Man bräuchte also ein 2. Fenster (Frames o.ä.). Wenn das Skript im 2. Fenster den Temp-Dateiname rausfinden könnte und sich dann periodisch aktualisiert, könnte man den Upload-Fortschritt anzeigen. Für einen Fortschrittsblanken müßte man nur noch die endgültige Größe der Datei wissen. Die wird aber beim Upload nicht mitgeliefert...