mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 18.04.2024 12:41 Benutzername: Passwort: Auto-Login

Thema: Wie arbeitet SWFUpload vom 15.01.2009


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Wie arbeitet SWFUpload
Autor Nachricht
Questioner
Threadersteller

Dabei seit: 23.12.2008
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Do 15.01.2009 11:02
Titel

Wie arbeitet SWFUpload

Antworten mit Zitat Zum Seitenanfang

Hi Leute,

viele von euch kennen doch sicher SWFUpload.
Mich würde mal interessieren, wie dieses Ding arbeitet.
Also nicht, wie man es implementiert und ansteuert, sondern wie genau es intern funktioniert.

Woher z.B. bekommt Flash den Übertragungsfortschritt?!
Der Upload geht ja über ein PHP-Script und das kann keinen Fortschrittsstatus zurückliefern...

Hat jemand eine Idee, wie das realisiert sein könnte?!

Liebe Grüße,
Questioner
  View user's profile Private Nachricht senden
l'Audiophile

Dabei seit: 16.09.2004
Ort: Berlin
Alter: 43
Geschlecht: Männlich
Verfasst Do 15.01.2009 11:07
Titel

Re: Wie arbeitet SWFUpload

Antworten mit Zitat Zum Seitenanfang

Questioner hat geschrieben:
Hi Leute,

viele von euch kennen doch sicher SWFUpload.
Mich würde mal interessieren, wie dieses Ding arbeitet.
Also nicht, wie man es implementiert und ansteuert, sondern wie genau es intern funktioniert.

Woher z.B. bekommt Flash den Übertragungsfortschritt?!
Der Upload geht ja über ein PHP-Script und das kann keinen Fortschrittsstatus zurückliefern...

Hat jemand eine Idee, wie das realisiert sein könnte?!

Liebe Grüße,
Questioner


Mit Flash ist es numal möglich, Dinge hochzuladen und den Fortschritt auszulesen. Wäre genauso wie die Frage: Wie kann PHP das? *zwinker*

Um noch genaueres herauszufinden, schau in die passende Flashklasse.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
Pixelpole

Dabei seit: 25.10.2004
Ort: Trier
Alter: 37
Geschlecht: Männlich
Verfasst Do 15.01.2009 11:10
Titel

Antworten mit Zitat Zum Seitenanfang

Sieh doch einfach in den Code. Die fla ist doch schliesslich auch dabei.
  View user's profile Private Nachricht senden
Questioner
Threadersteller

Dabei seit: 23.12.2008
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Do 15.01.2009 13:25
Titel

Re: Wie arbeitet SWFUpload

Antworten mit Zitat Zum Seitenanfang

pejot hat geschrieben:

Mit Flash ist es numal möglich, Dinge hochzuladen und den Fortschritt auszulesen. Wäre genauso wie die Frage: Wie kann PHP das? *zwinker*


Nein ich finde das ist ein großer Unterschied...
Im gegensatz zu Flash läuft PHP auf dem Server und hat da dann auch Zugriff auf das Dateisystem.
Mit PHP läd man die Dateien auch nicht hoch, sondern man speichert sie lediglich ab.

Flash läuft nur auf dem lokalen Rechner und kann somit keine Dateien auf dem Server speichern, diese aber mittels HTTP-Request an das PHP-Script senden.

Die Frage war auch nicht "Warum oder wie ist es möglich Dateien hochzuladen", sondern "Woher bekommt das Script den Fortschritsstatus"...

Pixelpole hat geschrieben:

Sieh doch einfach in den Code. Die fla ist doch schliesslich auch dabei.


Ooops Stimmt! Hab ich noch gar nie bemerkt und hätte ich auch gar nicht gedacht...
Danke! *Thumbs up!*
  View user's profile Private Nachricht senden
l'Audiophile

Dabei seit: 16.09.2004
Ort: Berlin
Alter: 43
Geschlecht: Männlich
Verfasst Do 15.01.2009 14:16
Titel

Re: Wie arbeitet SWFUpload

Antworten mit Zitat Zum Seitenanfang

Questioner hat geschrieben:

Im gegensatz zu Flash läuft PHP auf dem Server und hat da dann auch Zugriff auf das Dateisystem.


Falsch, Flash (zumindestens AS3) hat sehr wohl Zugriff auf das Deiteisystem derselben Domäne.

Questioner hat geschrieben:

Flash läuft nur auf dem lokalen Rechner und kann somit keine Dateien auf dem Server speichern, diese aber mittels HTTP-Request an das PHP-Script senden.


Das du dafür deine POST-Anweisung auf dem Server brauchst ist klar.

Questioner hat geschrieben:

Die Frage war auch nicht "Warum oder wie ist es möglich Dateien hochzuladen", sondern "Woher bekommt das Script den Fortschritsstatus"...


Mittels FileReference-Klasse und dem Progress-Event



Questioner hat geschrieben:

Pixelpole hat geschrieben:

Sieh doch einfach in den Code. Die fla ist doch schliesslich auch dabei.


Ooops Stimmt! Hab ich noch gar nie bemerkt und hätte ich auch gar nicht gedacht...
Danke! *Thumbs up!*


pejot hat geschrieben:
Um noch genaueres herauszufinden, schau in die passende Flashklasse.
*zwinker*
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
bacon

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Do 15.01.2009 14:29
Titel

Antworten mit Zitat Zum Seitenanfang

Da musste dich mal durch die einzelnen Protokolle des OSI Modells hampeln *zwinker*. Flash macht ja nix anderes als bestimmte OS-Aufrufe zu envoken, die dann die entspr. Funktionen, nämlich die Dateiübertragung, bereitstellen. Flash kapselt den ganzen Kram und triggert während des Uploads periodisch Callbacks, die du dann wiederum mit eigenem Code befüllen kannst. Die Callbacks liefern klassischerweise sowas wie totalbytes und die Anzahl der Bytes, die bereits Übertragen wurden (dafür brauchste keinen Server, der dir sagt, wieviel am anderen Ende rausgekommen ist, sondern musst nur gucken, wieviel du ans eine Ende der Leitung reingeschoben hast).

Leider ist das ganze - weil Betriebssystemspezifisch - nicht immer garantiert, manche OS liefern bspw. keinen Wert für bytesLoaded, sondern Flash gibt dir dann aus Kompatibilitätsgründen einen Wert wie -1 zurück. (Ärm obwohl ich hier nicht sicher bin, wie es sich wirklich verhält - das Flash-Browserplugin ist ebenfalls klassischerweise ein Ausbund an Buggyshit *zwinker* Kann also auch'n Flashbug sein).

Du kannst btw. mit PHP NICHT sagen, wieviele Bytes am andern Ende angekommen sind - das stimmt. Aber mit speziellen Apache-Modulen, die nicht an der Spitze des OSI-Referenzmodells angesiedelt sind (wie php), sondern weiter unten, kannst du durchaus einen Fileprogress triggern (mit APC geht das glaube ich bzw. anderen PECL-Extensions).

Andere Server, die keine HTTP- sondern bidirektionale, persistente Socket-Verbindungen erlauben, sind natürlich wieder ganz andere Sachen möglich wie bspw. Pushing - Flash/Flex in Kombination mit speziellen Flash-Servern kann sowas glaub ich, aber dafür bin ich kein Fachmann. Leicht ist sowas aber auch mittels eines Servlet-Containers möglich, der wiederum von Socket-fähigen Clients angesprochen wird (Flash, Java/-applet)...


Zuletzt bearbeitet von bacon am Do 15.01.2009 14:32, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
Questioner
Threadersteller

Dabei seit: 23.12.2008
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Do 15.01.2009 14:43
Titel

Antworten mit Zitat Zum Seitenanfang

Nachdem ich nun den Quellcode durchforstet habe, bin ich auch auf das ProgressEvent gestoßen.
Jetzt ist mir auch klar wie und wieso das geht. Ich wusste nur nicht, dass das ganze schon in Flash selbst implementiert ist und habe mich daher gefragt, wie der Autor des SWFUploads das dann angestellt hat.

Vielen Dank Euch allen!

@bacon
Vielen Dank auch für diese ausführliche Antwort. Damit hast Du mir zumindest mal gezeigt, womit ich mich in nächster Zeit noch beschäftigen sollte!
  View user's profile Private Nachricht senden
 
Ähnliche Themen wer arbeitet mit three.js ?
Wer arbeitet mit SixCMS ?
Wie arbeitet Flash besser?
Bei welcher Auflösung arbeitet Ihr?
TortoiseSVN - Wer arbeitet damit?
Wer arbeitet mit File Maker 7.0 ???
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.