Zurück   Flashforum > Flash > Flash Fortgeschritten > Flash 8

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 18-05-2007, 13:56   #1 (permalink)
reXcel
 
Benutzerbild von Sören
 
Registriert seit: Aug 2002
Ort: Herford
Beiträge: 4.774
Question FileReference.onProgress (zu schnell, in 1 Sek. fertig)

Hi,
ich lade mit FileReference was auf einen Server.

Nun zählt der onProgress Listener beim Upload von z.B. 1 MB Daten in unter 1 Sekunde auf 100%. Er springt dabei nicht sofort auf 100%, sondern wird durchaus 7 bis 10 mal aufgerufen, meldet jeweils mehr verschicke Bytes und ist dann halt fertig und wird nicht mehr aufgerufen.

Bis zum Auslösen von listener.onComplete dauert es dann aber noch locker 10 Sekunden bis der Upload tatsächlich fertig ist.

Code:
listener.onProgress = function(fileRef:FileReference, bytesLoaded:Number, bytesTotal:Number) {
	statusArea.text = "Sende Daten zum Server: (" + Math.round(100/bytesTotal*bytesLoaded)+"%). ";
}
Ich hatte schon daran gedacht, dass vielleicht ein Tool auf meinem System (Virenkiller) die Daten so schnell entgegennimmt (Flash denk sie wären schon gesendet) und dann selber verschickt... aber vielleicht kennt hier ja jemand eine einfachere Lösung.

rex
__________________
iPhone, iPad, Android und Flash Video Streamingserver
Streaming & Live-Streaming für Flash, iPhone, iPad, iPod touch und Android.
Inkl. Player, Videokonvertierung in optimierte Formate, Playercode, Flexplayer, etc...
Sören ist offline   Mit Zitat antworten
Alt 19-05-2007, 09:52   #2 (permalink)
reXcel
 
Benutzerbild von Sören
 
Registriert seit: Aug 2002
Ort: Herford
Beiträge: 4.774
*schieb*

Weiß keiner was?
__________________
iPhone, iPad, Android und Flash Video Streamingserver
Streaming & Live-Streaming für Flash, iPhone, iPad, iPod touch und Android.
Inkl. Player, Videokonvertierung in optimierte Formate, Playercode, Flexplayer, etc...
Sören ist offline   Mit Zitat antworten
Alt 21-05-2007, 07:49   #3 (permalink)
reXcel
 
Benutzerbild von Sören
 
Registriert seit: Aug 2002
Ort: Herford
Beiträge: 4.774
*schieb*
letzter Versuch
__________________
iPhone, iPad, Android und Flash Video Streamingserver
Streaming & Live-Streaming für Flash, iPhone, iPad, iPod touch und Android.
Inkl. Player, Videokonvertierung in optimierte Formate, Playercode, Flexplayer, etc...
Sören ist offline   Mit Zitat antworten
Alt 21-05-2007, 13:40   #4 (permalink)
industry painter
 
Benutzerbild von edding950
 
Registriert seit: Aug 2006
Ort: auf'm Pott
Beiträge: 760
*mal mitschieb*

Und was soll man jetzt mit der einen Scriptzeile anfangen?

Hast Du mal einen onHTTPStatus mit in den Listener eingeklinkt und geschaut, ob wenigstens der synchron mit onProgress auslöst?

Allerdings ist 1Sekunde für 1MB schon etwas unrealistisch schnell, wenn man nicht grade im Hochschulrechenzentrum sitzt..Lass Dir im onProgress-Callback auchmal die fileReference und deren Größe ausgeben - vielleicht stimmt ja bereits da irgendwas nicht. Testest Du das Ganze von lokal, oder liegt der Uploader bereits auf dem Server?
__________________
mfg.
edding950 ist offline   Mit Zitat antworten
Alt 23-05-2007, 13:57   #5 (permalink)
reXcel
 
Benutzerbild von Sören
 
Registriert seit: Aug 2002
Ort: Herford
Beiträge: 4.774
Zitat:
Zitat von edding950 Beitrag anzeigen
Hast Du mal einen onHTTPStatus mit in den Listener eingeklinkt und geschaut, ob wenigstens der synchron mit onProgress auslöst?
An sich eine gute Idee! Aber bei mir wird beim Upload vom FileReference-Listener der onHTTPStatus nicht aufgerufen. Da passiert scheinbar nichts. Oder wie soll ich das machen?
listener.onHTTPStatus = function(httpStatus:Number) {
trace("httpStatus: "+httpStatus);
}
//listener ist mein FileReference Listener auf den auch der onProgess etc. hört.



Zitat:
Zitat von edding950 Beitrag anzeigen
Lass Dir im onProgress-Callback auchmal die fileReference und deren Größe ausgeben - vielleicht stimmt ja bereits da irgendwas nicht.
HAbe ich konrolliert. Passt alles.

Zitat:
Zitat von edding950 Beitrag anzeigen
Testest Du das Ganze von lokal, oder liegt der Uploader bereits auf dem Server?
Online- wie offline das gleiche.

WICHTIG:
Habe jetzt festgestellt, dass es auch über meinen Laptop passiert. Daher könnte es am Server liegen... bin etwas ratlos.


reXcel
__________________
iPhone, iPad, Android und Flash Video Streamingserver
Streaming & Live-Streaming für Flash, iPhone, iPad, iPod touch und Android.
Inkl. Player, Videokonvertierung in optimierte Formate, Playercode, Flexplayer, etc...
Sören ist offline   Mit Zitat antworten
Alt 23-05-2007, 14:13   #6 (permalink)
will code HTML for food
 
Benutzerbild von querkopf
 
Registriert seit: Mar 2003
Beiträge: 1.232
Hast Du das mal mit 'nem XAMP-Server Lokal getestet?


Hier ist ein super Tutorial/Beispiel mit dem das bei mir gut geklappt hat:
http://flash-db.com/Tutorials/upload/index.php


Bis dann,
querkopf
__________________
Alles ist wie immer. Nur schlimmer.
querkopf ist offline   Mit Zitat antworten
Alt 23-05-2007, 15:47   #7 (permalink)
reXcel
 
Benutzerbild von Sören
 
Registriert seit: Aug 2002
Ort: Herford
Beiträge: 4.774
Hallo querkopf,
habe mir das Tut gerade angesehen und auch mit meinem Server getestet. Leider berührt es jedoch nicht die auftretende Problematik.

Das von dir genannte Script enthält nicht einmal eine Progress-Anzeige... somit flietzt diese auch bei diesem Tut-Script nicht "zu schnell", sondern überhaupt nicht

Jedoch habe ich bisher auch immer ein Problem mit zu großen Uploads gehabt. Das tritt mit diesem Script genauso auf (IOError). Daher hat es mir in sofern geholfen, dass ich jetzt weiß es liegt an den Servereinstellungen und nicht an meinem bisherigen lokalen Code.
__________________
iPhone, iPad, Android und Flash Video Streamingserver
Streaming & Live-Streaming für Flash, iPhone, iPad, iPod touch und Android.
Inkl. Player, Videokonvertierung in optimierte Formate, Playercode, Flexplayer, etc...
Sören ist offline   Mit Zitat antworten
Alt 23-05-2007, 15:57   #8 (permalink)
will code HTML for food
 
Benutzerbild von querkopf
 
Registriert seit: Mar 2003
Beiträge: 1.232
ups, sorry hab' mir den Code von dem (online) Beispiel nicht nochmal angeguckt, sondern nur von der Version des Beispiels, das ich auf der Platte hab'.
Und da war alles drin... ich glaub' ich hatte mir noch Sachen aus der Flash-Hilfe zur FileReference rauskopiert...
und wie gesagt bei mir funzt's dann.

Aber hier sind noch ein paar Links zur FileReference, der erste auch mit einem Beispiel mit Statusanzeige (etwas runterscrollen):

http://www.blog.medianetic.de/?p=12
http://markshu.ca/imm/flash/tutorial/fileReference.html
[Good to know] Eigene Fehler-Rückgaben bei FileReference-Upload

Bis dann,
querkopf
__________________
Alles ist wie immer. Nur schlimmer.
querkopf ist offline   Mit Zitat antworten
Alt 23-05-2007, 16:53   #9 (permalink)
reXcel
 
Benutzerbild von Sören
 
Registriert seit: Aug 2002
Ort: Herford
Beiträge: 4.774
Die Links gucke cih mir nachher mal an. Danke.


Der ganz oben vermutete Upload-Cache ist übrigens 16 MB groß. Die werden gefüllt und der Upload verläuft im Hintergrund (auch auf einem anderen Rechner).... *kratz am Kopf*
__________________
iPhone, iPad, Android und Flash Video Streamingserver
Streaming & Live-Streaming für Flash, iPhone, iPad, iPod touch und Android.
Inkl. Player, Videokonvertierung in optimierte Formate, Playercode, Flexplayer, etc...
Sören ist offline   Mit Zitat antworten
Alt 23-05-2007, 17:42   #10 (permalink)
reXcel
 
Benutzerbild von Sören
 
Registriert seit: Aug 2002
Ort: Herford
Beiträge: 4.774
Noch eine Erkenntnis: Im IE7 läufts. Im Firefox (2.0.0.3) gibts IOError.
__________________
iPhone, iPad, Android und Flash Video Streamingserver
Streaming & Live-Streaming für Flash, iPhone, iPad, iPod touch und Android.
Inkl. Player, Videokonvertierung in optimierte Formate, Playercode, Flexplayer, etc...
Sören ist offline   Mit Zitat antworten
Alt 23-05-2007, 21:59   #11 (permalink)
industry painter
 
Benutzerbild von edding950
 
Registriert seit: Aug 2006
Ort: auf'm Pott
Beiträge: 760
Mh..bin mal gespannt, worauf es hinausläuft. Ich hatte bisher nie von so massiven Problemen mit flash.net.FileReference gehört.

Folgende Idee hätte ich noch...:

listener.onProgress = function(fileRef:FileReference, bytesLoaded:Number, bytesTotal:Number) {
//...
}

Ist das rot hervorgehobene Argument private Variable der Funktion 'onProgress' oder nimmst Du (was ein möglicher Fehler wäre) hier das gleiche FileReference-Object, was auch den Listener bekommt?
__________________
mfg.
edding950 ist offline   Mit Zitat antworten
Alt 23-05-2007, 22:07   #12 (permalink)
reXcel
 
Benutzerbild von Sören
 
Registriert seit: Aug 2002
Ort: Herford
Beiträge: 4.774
Hi edding, deinen Ansatz versteh ich nicht. Das fileRef zeigt mir ja die korrekte Datei von meinem System an. Was soll daran nicht stimmen?




Interessant ist für mich eigentlich auch nur das folgend rot markierte. Denn hierher bekomme ich ja die falsche Upload-Angaben (die mit dem "16 MB cache").

listener.onProgress = function(fileRef:FileReference, bytesLoaded:Number, bytesTotal:Number) {
//...
}
__________________
iPhone, iPad, Android und Flash Video Streamingserver
Streaming & Live-Streaming für Flash, iPhone, iPad, iPod touch und Android.
Inkl. Player, Videokonvertierung in optimierte Formate, Playercode, Flexplayer, etc...
Sören ist offline   Mit Zitat antworten
Alt 24-05-2007, 09:40   #13 (permalink)
industry painter
 
Benutzerbild von edding950
 
Registriert seit: Aug 2006
Ort: auf'm Pott
Beiträge: 760
Ja, schon...aber im Prinzip arbeitest Du ja im Normalfall innerhalb der Prozedur mit zwei FileReferece-Objekten. Eines bekommt den Listener und das andere ist inline-Argument einer Funktion, die als Callback im Listener definiert ist. Der Flash-Compiler (ich gehe mal davon aus, dass Du mit Flash kompilierst) nimmt es nicht so genau, wenn man für beide Objekte den gleichen Namen verwendet.

Also im Prinzip könnte sowas hier eine mögliche Fehlerquelle sein:

ActionScript:
  1. import flash.net.FileReference;
  2. //
  3. var fileRef:FileReference = new FileReference();
  4. var listener:Object = new Object();
  5. //
  6. listener.onProgress = function (fileRef:FileReference, bl:Number, bt:Number)
  7. {
  8.    //...
  9. };
  10. fileRef.addListener(listener);

..das eine ist halt die Referenz auf die jeweilige Datei, die hoch- bzw. runtergeladen wird und das andere ein Objekt, was das ganze Prozedre initialisiert. Schon ein wichtiger Unterschied.

Nochmal zum Vergleich mit Funktionseigener Instanz (wie es auch richtig wäre):

ActionScript:
  1. import flash.net.FileReference;
  2. //
  3. var fileRef:FileReference = new FileReference();
  4. var listener:Object = new Object();
  5. //
  6. listener.onProgress = function (ichBinNichtDASfileRefObjekt:FileReference, bl:Number, bt:Number)
  7. {
  8.    //...
  9. };
  10. fileRef.addListener(listener);

...Ansonsten hab ich auch keinen Rat...Eine Idee vielleicht, falls es am Server liegt:
Ich weiß nicht, ob dieser Flashupload überhaupt sowas, wie ein temporäres Verzeichnis auf dem Server benötigt..Aber vielleicht hilfts ja, insofern nicht eh schon vorhanden, auf dem Server (übergeordnet dem Webroot-Verzeichnis) ein Verzeichnis namens 'tmp' zu ergänzen, was natürlich chmod 777 haben sollte.
__________________
mfg.
edding950 ist offline   Mit Zitat antworten
Alt 24-05-2007, 13:02   #14 (permalink)
reXcel
 
Benutzerbild von Sören
 
Registriert seit: Aug 2002
Ort: Herford
Beiträge: 4.774
Hi Edding. Meinen Dank für den ausführlichen Gedankenanstoß. .)

Der Unterschied war mir tatächlich nicht klar - und ich weiß auch bis jetzt noch nicht, wo hier der Fehler entstehen könnte. Es seih denn, du meinst der Compiler könnte sich vertun (bzw. der Flashplayer bei der Ausführung).
Wie auch immer: Die genutzte Filereferenz gibt mir die richtigen Daten zurück (Dateiname, Größe, etc.). Somit kann es (nach meinem Verständnishorizont) nicht die falsche Referenz sein.


Zum Server:
Die Daten werden per PHP empfangen. Da gibt es immer einen temp-Ordner. Dieser wird jedoch vom System vergeben und sollte funktionieren.

//
Ich werde das ganze mal mit einem anderen Server testen. Das macht natürlich Arbeit, aber ich hoffe darauf es damit weiter einkreisen zu können.
__________________
iPhone, iPad, Android und Flash Video Streamingserver
Streaming & Live-Streaming für Flash, iPhone, iPad, iPod touch und Android.
Inkl. Player, Videokonvertierung in optimierte Formate, Playercode, Flexplayer, etc...

Geändert von Sören (24-05-2007 um 13:12 Uhr)
Sören ist offline   Mit Zitat antworten
Alt 24-05-2007, 14:02   #15 (permalink)
reXcel
 
Benutzerbild von Sören
 
Registriert seit: Aug 2002
Ort: Herford
Beiträge: 4.774
Soooo, ich dreh jetzt langsam am Rad! Der Bug liegt an FLASH! oder?

Ich habe statt meinem Code anderen Code aus einem Tutorial vewendet, den ganzen Kram auf einen anderen Server übertragen (anderer Hoster, alles!) und mit einem anderen Rechner den Upload probiert: DAS GLEICHE FEHLERBILD:
Der OnProgress geht in weniges Sekunden auf 100% (Übertragene Bytes = Gesamtupload Bytes) obwohl der Upload noch lange nicht fertig ist. Kann es noch an mir liegen? Ich heul gleich.


Könntet ihr mir helfen und mal drauf gucken?

Ich lade eine zip hoch. HIER. Das ganze stammt aus einem kleinen Tutorial.
- Mini PHP Datei. Nur eine Zeile für den Upload drin. Sonst gar nichts.
(Das Verzeichnis in der das PHP gespeichert wird, muss Rechte haben, sonst kann/darf das Script die empfangene Datei nicht speichern.)

- upload_test.fla Oben einfach eure Domain eintragen (wegen der Sicherheitszone) und dann noch die URL der Domain inkl. Testpfad zur PHP-Datei eingeben. Fertig. Könnt ihr sogar innerhalb von Flash testen.


Läuft das bei euch???
Bei mir: Upload geht. Auch größere Dateien. Aber der onProgress schraubt auch bei großen Dateien den Uploadstatus in wenigen Sek. auf 100% ... und lädt dann ohne weitere Meldung im Hintergrund weiter. Irgendwann ist er dann halt tatsächlich fertig und meldet das auch.
__________________
iPhone, iPad, Android und Flash Video Streamingserver
Streaming & Live-Streaming für Flash, iPhone, iPad, iPod touch und Android.
Inkl. Player, Videokonvertierung in optimierte Formate, Playercode, Flexplayer, etc...
Sören ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 22:58 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele