Bildupload mit Flash?

FunkyMonkey

Mitglied
Hallo Flasher!

Ist es möglich per Flash ein Bild auf dem Rechner auszuwählen ("durchsuchen"-button), dieses anschließend in Flash rein zu laden, anzuzeigen, einen Ausschnitt aus dem Bild zu wählen und anschließend das Bild auf den Server hochzuladen? Empfänger wäre z.B. ein PHP-Skript.

Der Clou dabei: Flash soll das Bild clientseitig verkleinern *bevor* es hochgeladen wird, so das auch große Bilder schnell übertragen werden können.

Dann die nächste Frage: Wenn das in Flash technisch machbar ist, gibt es hierfür bereits Lösungen am Markt, sei es openSource oder auch kostenpflichtig?

Und noch eine: Angenommen das ist machbar, wer würde mir sowas für wieviel programmieren?

Danke
 
Ich bin kein Flashguru aber mit Komponenten kann man ganz normale (Upload) Formulare erzeugen die dann auch problemlos mit loadVars() diese Daten an ein z.B. PHP File schicken können. Das habe ich gerade aktuell in einem Buch/Workshop gesehen. Wie es aber codetechnisch genau abläuft kann ich Stegreif nicht sagen. In PHP ist es eine stink normale Formularverarbeitung mit den üblichen Variablen. Ob eine clientseitige Verkleinerung der Bilddatei möglich ist kann ich Dir leider nicht beantworten.
 
Zuletzt bearbeitet:
Also meines Erachtens kann nur Php dann das Bild verkleinern in dem Upload script zB.

Und noch eine: Angenommen das ist machbar, wer würde mir sowas für wieviel programmieren?

Aber das gehört auch eigentlich ins Job Forum ;)
 
Hi,
ja ein Upload Formular kannst du mit der FileReference Klasse machen.
Lege mal ein dyn Textfeld an mit instannamen "status_txt" und einen button MovieClip mit instanznamen "upload_btn".
Und lege dann noch dieses Skript in einem Frame, müßtest nur noch auswählen welche Format man hochladen darf. :)

Code:
import flash.net.FileReference;
var dateitypen:Array = new Array();
var formate:Object = new Object();
formate.description = "*.jpg, *.jpeg, *.gif, *.png,*.rar,*.zip,*.swf";
formate.extension = "*.jpg; *.jpeg; *.gif; *.png;*.rar;*.zip;*.swf";
dateitypen.push(formate);
var up_listener:Object = new Object();
up_listener.onSelect = function(datei) {
	if (!datei.upload("upload.php")) {
		status_txt.text = "Upload Fenster konnte nicht geöffnet werden";
	}
};
up_listener.onCancel = function(datei) {
	status_txt.text = "Auswahl abgebrochen!";
};
up_listener.onOpen = function(datei) {
	status_txt.text = "Geöffnet: "+datei.name;
};
up_listener.onProgress = function(datei, bytesLoaded, bytesTotal) {
	status_txt.text = "UploadStatus. "+bytesLoaded+" BytesGesamt: "+bytesTotal;
};
up_listener.onIOError = function(datei) {
	status_txt.text = "IO Fehler: "+datei.name;
};
up_listener.onSecurityError = function(datei, fehlermeldung) {
	status_txt.text = "SicherheitsFehler: "+datei.name+" Meldung: "+fehlermeldung;
};
up_listener.onComplete = function(datei) {
	status_txt.text = "Upload "+datei.name+" erfolgreich";
};
var upload_ref:FileReference = new FileReference();
upload_ref.addListener(up_listener);
upload_btn.onPress = function() {
	upload_ref.browse(dateitypen);
};
 
Danke

soweit ich den code richtig verstehe wird das Bild hier in das clientseitige SWFgeladen und steht dann dort zur weiteren Vereibeitung zur Verfügung. Korrekt?

Nun habe ich von anderer Seite gehört, man kann nur entweder den upload vom Rechner -> SWF erlauben, oder von SWF->Server.

Oder geht doch beides?
 
soweit ich den code richtig verstehe wird das Bild hier in das clientseitige SWFgeladen und steht dann dort zur weiteren Vereibeitung zur Verfügung. Korrekt?
Nein, das FileReference-Objekt arbeitet prinzipiell wir ein Input-Control vom Typ "file" in html: Der Benutzer bekommt einen Fileselect-Dialog zu sehen und kann eine Datei auswählen, die dann an den Server übertragen wird. Die clientseitige SWF hat keinen Zugriff auf die ausgewählte Datei (Du kannst allerdings nach dem Upload eine Anfrage an den Server stellen, und die zuvor hochgeladene Datei von dort in Deinen Film einladen ;)).

Gruß
.
 
Zurück