Zurück   Flashforum > Flex und AIR > Adobe AIR

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 23-01-2011, 11:29   #1 (permalink)
es lebe die Luft
 
Registriert seit: Nov 2010
Ort: this.stage
Beiträge: 91
FileReference download()/upload() ohne Nachfragen

Hallo,

Die Klasse FileReference besitzt ja den Nachteil, dass immer gefragt wird, welche Datei FR benutzen soll, bspw. wo der Zielort der zu herunterladenden Datei sein soll. Als Alternative zu FileReference write() gibt es ja sowas auch unter der Klasse FileMode, zwar nur in AIR verfügbar, aber deswegen steht das ja in diesem Forum.

Gibt es eine Möglichkeit, eine Datei hoch- bzw. herunterzuladen, ohne dass nachgefragt werden muss, also ohne FileReference.

Das Beispiel mit FR habe ich von da: Adobe ActionScript 3.0 * Beispiel: Hoch- und Herunterladen von Dateien

MfG,
AIR-Fan

EDIT:
Oder kann man es irgendwie so einstellen, dass der Pfad der Datei, die hochgeladen werden soll bzw. der Zielpfad der Datei die heruntergeladen soll, immer ein bestimmter sein muss?

Geändert von AIR-Fan (23-01-2011 um 18:26 Uhr) Grund: siehe EDIT ...
AIR-Fan ist offline   Mit Zitat antworten
Alt 24-01-2011, 01:43   #2 (permalink)
in the boondocks
 
Benutzerbild von shin10
 
Registriert seit: Feb 2006
Ort: Augsburg
Beiträge: 3.496
mir stellt sich gerade die frage: was hast du eigentlich vor? ich hab das gefühl du "verdenkst" dich da gerade ...

mfg

sx

edit: ich mein nur, weil du doch auch so daten mit flash runterladen kannst ... wär ja blöde, wenn youtube bei jedem nachgeladenen video nachfragt. und hochgeladenes speichern ist dann halt eher serversache.
__________________

flintfabrik.de

Geändert von shin10 (24-01-2011 um 02:24 Uhr)
shin10 ist gerade online   Mit Zitat antworten
Alt 24-01-2011, 08:10   #3 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
@AIR-Fan:
Was genau hst Du den vor? Soll's ein lokal Flash-Anwendung werden, oder eine normale Website, die man über den Browser aufruft?!

Für den ersten Fall gibt es die Klasse File in Air oder alternative SWF2EXE-Tools wie Zinc, die solche Zugriffe gestatten.

Bei Onlineanwendungen hingegen ist es wichtig und richtig, dass jeder Zugriff auf lokale Daten einen Nutzerdialog erfordert! Ohne diesen Schutz könnte ja jeder FlashFilm Deinen Rechner nach Adressen, Passwörtern oder Rechnungsdaten durchsuchen und diese sonstwohin schicken...

Wenn die Dateien gar nicht lokal gespreichert sondern nur vom Flash-Film verarbeitet werden sollen, brauchst Du, wie shin schon geschrieben hat, all das garnicht: Hier kannst Du mit der Loader- bzw. URLLoader-Klasse beliebige Daten mit dem Server austauschen ohne das es irgendwelcher Dialoge bedürfte.
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!

Geändert von Martin Kraft (24-01-2011 um 08:12 Uhr)
Martin Kraft ist gerade online   Mit Zitat antworten
Alt 24-01-2011, 17:41   #4 (permalink)
es lebe die Luft
 
Registriert seit: Nov 2010
Ort: this.stage
Beiträge: 91
Dass ein Film nicht ohne weiteres zugreifen kann ist schon logisch, jedoch spreche ich von einer AIR-Anwendung.

Beispiel:
Ziel: String in Datei schreiben

SWF-Film: FileReference. Erfordert Nachfrage.
AIR: FileMode. Erfordert keine Nachfrage.

In dem Beispiel kann die AIR Anwendung ohne weiteres auf Dateien zugreifen.

Die Frage ist nun, ob eine AIR Anwendung selbstständig etwas herunterladen hochladen oder kann, denn mit FileMode greift die Anwendung auch auf Dateien zu. Warum erfordert ein Download/Upload, der über AIR ausgelöst wird, auch eine Zustimmung?

Loader-Objekte sind nicht das Ziel.

Multidmedia Zinc wäre ideal für eine Lösung. Der Preis ist allerdings etwas ...
Sollte sich da jemand auskennen, kann man mein Ziel mit Zinc vergleichen.

Herunterladen:
{mdm} Zinc 3.0 - LiveDocs - HTTP.getFile()

Hochladen:
{mdm} Zinc 3.0 - LiveDocs - FTP.sendFile()

MfG,
AIR-Fan
AIR-Fan ist offline   Mit Zitat antworten
Alt 24-01-2011, 17:49   #5 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Wenn Du eh mit Air arbeitest benutz' doch einfach die Klasse File! Die erbt bei FileReference und hat zusätzlich vollen System-Zugriff...

Verstehe nicht ganz, was Du mit wie Du auf FileMode kommst. Diese Klasse enthält doch nur ein paar Konstanten?!
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!
Martin Kraft ist gerade online   Mit Zitat antworten
Alt 24-01-2011, 17:56   #6 (permalink)
es lebe die Luft
 
Registriert seit: Nov 2010
Ort: this.stage
Beiträge: 91
Das ist in anderen Threads hier um Forum auch gestanden und als ich FileReference durch File ersetzt hab, ist wieder das Dialogfeld gekommen. Dazu bin ich offenbar zu dumm, daher das Thema ...

MfG,
AIR-Fan
AIR-Fan ist offline   Mit Zitat antworten
Alt 24-01-2011, 17:59   #7 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Wenn Du keinen Dialog haben möchtest, darfst Du natürlich auch nicht mit browse(); o.ä. arbeiten, sondern musst den Pfad auf andere Weise angeben.

Wie sieht denn Dein Script aus?
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!

Geändert von Martin Kraft (24-01-2011 um 18:01 Uhr)
Martin Kraft ist gerade online   Mit Zitat antworten
Alt 24-01-2011, 18:09   #8 (permalink)
es lebe die Luft
 
Registriert seit: Nov 2010
Ort: this.stage
Beiträge: 91
Wie in dem Link in meinem ersten Beitrag, ohne Komponenten, Flash CS5 fertig geschrieben.
Wie geschrieben, FileReference durch File ersetzt. Ich seh nix von browse().

Code:
var DOWNLOAD_URL:String = new String("http://www.flashforum.de/forum/kopf-fuss/flashforum_logo.gif");
var file:File = new File();

var request:URLRequest = new URLRequest();
request.url = DOWNLOAD_URL;
file.download(request);
Mit Uploaden hab ich es gar nicht probiert, da ich nicht weiß wie man so ein serverseitiges Script baut und es kein FTP in AIR bzw. AS gibt. Das gibt's halt nur in Zinc.

MfG,
AIR-Fan

Geändert von AIR-Fan (24-01-2011 um 18:11 Uhr)
AIR-Fan ist offline   Mit Zitat antworten
Alt 24-01-2011, 18:18   #9 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Es geht Dir also primär um den Download?! Kann sein, das du dafür doch auf die URLLoader-Klasse zurückgreifen musst, um die Daten vom Server zuladen. Wenn sie dann erstmal in Flash vorliegen, kannst Du sie ja mit über einen FileStream speichern.

Ich selbst habe das so herum noch nie gemacht. Aber benutz' mal Google, da gibt es garantiert fertige Code-Beispiele...
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!
Martin Kraft ist gerade online   Mit Zitat antworten
Alt 24-01-2011, 18:25   #10 (permalink)
es lebe die Luft
 
Registriert seit: Nov 2010
Ort: this.stage
Beiträge: 91
Geht es also nicht das automatisch zu speichern?

URLLoader lädt laut API ja nur den Inhalt der Datei. Und mit FileStream kann ich diesen in einer Datei speichern, oder?
Das Ziel war ja aber die gesamte Datei und nicht den Inhalt auf dem Rechner zu speichern ...

MfG,
AIR-Fan
AIR-Fan ist offline   Mit Zitat antworten
Alt 24-01-2011, 18:36   #11 (permalink)
in the boondocks
 
Benutzerbild von shin10
 
Registriert seit: Feb 2006
Ort: Augsburg
Beiträge: 3.496
wo siehst du den unterschied zwischen inhalt und datei?

wenn du die daten in binärer form möchtest (und nicht vom plugin als bspw. jpg interpretiert), musst du eigentlich nur URLLoader verwenden und das dataFormat auf URLLoaderDataFormat.BINARY stellen.

dann kannst du das später auf der festplatte mittels FileStream speichern ... is bei mir zwar ne weile her, aber stimmt schon, oder?

mfg

sx
__________________

flintfabrik.de
shin10 ist gerade online   Mit Zitat antworten
Alt 28-01-2011, 18:10   #12 (permalink)
es lebe die Luft
 
Registriert seit: Nov 2010
Ort: this.stage
Beiträge: 91
Hi,

Sorry für die späte Antwort.

@Shin10

Hast du dir das so vorgestellt?

Code:
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.Event;

var loader:URLLoader = new URLLoader();
var dataFormat:String = URLLoaderDataFormat.BINARY;
loader.dataFormat = dataFormat;

var urlrequest:URLRequest = new URLRequest("http://flashstar.de/fla/3dbkreis5.swf");

loader.load(urlrequest);

loader.addEventListener(Event.COMPLETE, erstelledatei);
function erstelledatei(evt:Event)
{
	var file:File = new File("c:\\meinverzeichnis\\test.swf");

	var filestream:FileStream = new FileStream();
	filestream.open(file, FileMode.WRITE);
	filestream.writeUTFBytes(loader.data);
	filestream.close();
}
Ich denke nicht, denn es funktioniert nicht ....
test.swf wird angelegt, und ich kann die Datei auch öffnen, aber ich sehe einen weißen Bildschirm ....

BTW: Das mit Flashstar war nur ein Versuch. Ich habe das ausgewählt, weil ich es mit SWFs versuchen wollte und Flashstar die einzige Seite war, wo man die URL präsentiert bekommt.

MfG,
AIR-Fan
AIR-Fan ist offline   Mit Zitat antworten
Alt 28-01-2011, 23:09   #13 (permalink)
in the boondocks
 
Benutzerbild von shin10
 
Registriert seit: Feb 2006
Ort: Augsburg
Beiträge: 3.496
du musst das als bytes, nicht utfbytes, schreiben.

here you go:
PHP-Code:
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.Event;
import flash.net.FileFilter;
import flash.filesystem.File;

var 
loader:URLLoader = new URLLoader();
var 
dataFormat:String URLLoaderDataFormat.BINARY;
loader.dataFormat dataFormat;

var 
urlrequest:URLRequest = new URLRequest("http://flashstar.de/fla/3dbkreis5.swf");

loader.load(urlrequest);

loader.addEventListener(Event.COMPLETEerstelledatei);
function 
erstelledatei(evt:Event)
{
    var 
file:File = new File("c:\\meinverzeichnis\\test.swf");

    var 
filestream:FileStream = new FileStream();
    
filestream.open(fileFileMode.WRITE);
    
filestream.writeBytes(loader.data);
    
filestream.close();

mfg

sx
__________________

flintfabrik.de
shin10 ist gerade online   Mit Zitat antworten
Alt 29-01-2011, 19:03   #14 (permalink)
es lebe die Luft
 
Registriert seit: Nov 2010
Ort: this.stage
Beiträge: 91
Thx. Tröstlich ist immerhin, dass mein Code nur um 3 Buchstaben falsch war ^^

Wo genau ist denn der Unterschied zwischen UTFBytes und Bytes? Oder muss ich Bytes immer nehmen, wenn das DataFormat auf BINARY gestellt ist?

Wegen dem Upload, gibt es eine Möglichkeit eine FTP Verbindung mit AIR herzustellen?

MfG,
AIR-Fan
AIR-Fan ist offline   Mit Zitat antworten
Alt 30-01-2011, 02:34   #15 (permalink)
in the boondocks
 
Benutzerbild von shin10
 
Registriert seit: Feb 2006
Ort: Augsburg
Beiträge: 3.496
Zitat:
Zitat von AIR-Fan Beitrag anzeigen
Wo genau ist denn der Unterschied zwischen UTFBytes und Bytes? Oder muss ich Bytes immer nehmen, wenn das DataFormat auf BINARY gestellt ist?
soweit ich weiß ja. utf braucht man soweit ich weiß nur für sonderzeichen; sprich, insbesondere für alle nicht-lateinischen texte.

Zitat:
Wegen dem Upload, gibt es eine Möglichkeit eine FTP Verbindung mit AIR herzustellen?
nichts natives wovon ich wüsste - beim googlen findet man recht schnell flexFTP, aber damit habe ich bisher keine erfahrung gemacht.
Source of FlexFTP

mfg

sx
__________________

flintfabrik.de
shin10 ist gerade online   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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
File Upload OHNE FileReference Neuromancer ActionScript 3 2 19-10-2010 15:54
Upload per AS3 und FileReference ... mmgraphics ActionScript 3 3 14-05-2008 22:36
FileReference download - ohne Dialog?! jan700 ActionScript 1 7 02-11-2006 11:03
FileReference.upload son yu Flash 8 1 29-03-2006 17:10
FileReference: Download ohne Browse? Vampire's Party Flash 8 5 13-03-2006 21:07


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:49 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele