2009-10-02 23 views
8

Ich entwickle Bild-Uploader in Flash. Ich benutze FileReference.browse, um Bild zu suchen, dann ändere dieses Bild auf 1000 x 1000 px, wenn das Bild sehr groß ist, und lade es auf den Server hoch. Ich möchte die Fortschrittsleiste für den Fortschritt des Bilduploads anzeigen.Image Upload Fortschritt mit URLLoader AS3

Ich benutze URLLoader, um Binärdaten der Bilder in der Größe zu senden, aber ProgressEvent auf URLLoader funktioniert nicht so, wie es funktionieren soll. Es wird nur ausgelöst, nachdem das Bild vollständig hochgeladen wurde, anstatt den Zwischenfortschritt anzuzeigen. ProgressEvent in FileReference funktioniert perfekt, um den Zwischenbild-Upload-Fortschritt anzuzeigen.

Gibt es eine Möglichkeit, den Upload-Fortschritt mithilfe von URLLoader anzuzeigen? oder

Können wir FileReference verwenden, um geändertes Bild zu laden und dann FileReference.upload aufzurufen, auf diese Weise wird es möglich sein, tatsächliche Fortschrittsbalken anzuzeigen.


Update 1:
Aber mein Problem ist, dass ich nach der Verwendung von FileReference.browse das geblättert Bild am Ändern der Größe, und ich mag verkleinerten Bilder hochladen, nicht das Originalbild in FileReference- Objekt nach Durchsuchen. Wie verwende ich Filereference.upload in diesem Fall? Filereference.upload lädt das Originalbild, nicht das geänderte. Irgendeine Idee, wie man das geänderte Bild in das Filereference-Objekt legt und dann FileReference.upload verwendet.


Update 2:
Nicht in der Lage Daten in Dummy FileReference- einzustellen, werden die Daten schreibgeschützte Eigenschaft.


Update 3:
Das hat aber gleiches Problem von nicht Hochladen von Bildern Fortschritt zeigt, aus dem obigen Link.

„Leider ein Problem bekommt Fortschritt Veranstaltung gibt es Wir können es kaum Fortschritte zeigen beim Senden von Daten an den Server, weil Flash es nicht unterstützt "

Ich bin genau auf der Suche nach einer Lösung für das oben genannte Problem. URLLoader funktioniert gut, um die Bilddaten zu veröffentlichen.

+0

Ich mache die gleiche Sache und stolperte über das gleiche Problem. Ich denke daran, während des Hochladens eine "unpräzise Ladezeile" zu setzen. – Danita

+0

In meinem Fall hat die resultierende Datei * normalerweise * ungefähr die gleiche Größe. Ich beendete die Einrichtung eines Timers mit der geschätzten Zeit, die der Upload in * den meisten * Situationen benötigt, und dem Abrufen des Timers zum Abfeuern von ProgressEvents für die Fortschrittsleiste . Es ist besser als nichts und die Benutzer können den Unterschied nicht unterscheiden. – Danita

+0

Nun, das ist, was ich eine 'brillante Lösung' nenne. – Tom

Antwort

0

Verwenden Sie FileReference.upload, das ist genau das, was diese Methode ist, und Sie werden Ihre Fortschrittsanzeige haben.

+0

Er versucht nicht, die Originaldatei hochzuladen, sondern das ByteArray der JPEG-Codierung der resultierenden Größenänderung der Originaldatei. – Danita

+0

Hmm, hätte schwören können, dass die ursprüngliche Frage das nicht erwähnte ... na ja, ich habe eine neue Antwort gepostet, die auf die Situation, wie sie derzeit dargestellt wird, zutrifft. – JStriedl

4

URLLoader ist so eingerichtet, dass es keine Fortschrittsereignisse empfangen kann, bis der Ladevorgang abgeschlossen ist, wie in der Dokumentation HERE angegeben. Vielleicht können Sie stattdessen URLStream verwenden, um das Fortschrittsereignis wie gewünscht zu erhalten? Ich bin mir nicht sicher, ob die Fortschrittsereignisse für URLStream nur zum Herunterladen der Antwort des Servers ausgelöst werden oder ob sie für die gesamte Transaktion ausgelöst werden (Upload & download), die Dokumente scheinen nicht genau zu spezifizieren.

+1

Dies wurde zweimal hochgestuft ... Ich frage mich, ob jemand es ausprobiert und bestätigt hat, ob URLStream ordnungsgemäße Fortschrittsereignisse verschickt? Ich habe an anderer Stelle gelesen, dass es nicht so ist, aber bis jetzt keine definitive Quelle ... naja. – Cameron

+0

Ich sehe in URLStream nichts, was darauf schließen lässt, dass es zum Hochladen von Inhalten verwendet werden kann! Die Dokumentation beschreibt DOWNLOADING im Detail, aber es gibt nicht einmal eine Upload-Methode. Können Sie angeben, wie Sie eine Datei hochladen würden? –

Verwandte Themen