Flashhilfe.de - Flash Community

Auf Datei verweisen [Flash 10]

 


AntwortenRegistrieren Seite1 2  

Mole23#1
Benutzerbild von Mole23
Beiträge: 50
Wohnort: Hamburg
Registriert: Feb 2010

11.02.2010, 16:25

Hallo,

da ich in meinem letzten Ansatz die Frage wohl etwas merkwürdig gestellt hatte, gestalte ich diese mal etwas um:

[CODE]
private function browse():void {
      
      if (fileRef) {
         fileRef = null;
         txt = "";
         
      }
      fileRef = new FileReference();
      fileRef.browse();
      
      fileRef.addEventListener(Event.SELECT, load);
      fileRef.addEventListener(Event.COMPLETE, dump);
   }
[/CODE]

Anstatt nach einem File zu browsen, würde ich gerne einen direkten Verweis festlegen: z.B. C:\test.pdf


Jemand eine Idee?
longCrew#2
Benutzerbild von longCrew
Beiträge: 380
Wohnort: München, Berlin
Registriert: Apr 2009

11.02.2010, 17:00

hallo
mit nativePath kannst du das machen

mfg
Die Lösung ist: das Suchen.
LongCrew = 2 people
Mole23#3
Benutzerbild von Mole23
Beiträge: 50
Wohnort: Hamburg
Registriert: Feb 2010

Themenautor/in

11.02.2010, 17:01

Also wenn du das wie folg meintest, geht das leider nicht... Hatte ich auch schon versucht...

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
[Bindable]
   private var fileRef:FileReference;
   
   private function browse():void {
      
      if (fileRef) {
         fileRef = null;
         txt = "";
         
      }
      fileRef = new FileReference();
      fileRef.nativePath = "C:\Web/NxCommunicator/Test-PDF.pdf";
Geändert von Mole23 am 11.02.10 um 17:08 Uhr
Mole23#4
Benutzerbild von Mole23
Beiträge: 50
Wohnort: Hamburg
Registriert: Feb 2010

Themenautor/in

11.02.2010, 17:12

Ich hatte auch schon diese Lösung im Kopf: Kannst du evtl. ersehen ob das Bullshit ist?


ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[Bindable]
   private var file:File;
   
   private function addpdf():void {
      
      
      file.nativePath = "C:\+ Web/NxCommunicator/Test-PDF.pdf";
      
      file.load()
      
      var bytes:ByteArray = file.data;
      var encoder:Base64Encoder = new Base64Encoder();
      
      encoder.encodeBytes(bytes);
      txt = encoder.drain();
      
      arr.addItem(file.name);
      arr.addItem(txt);
      
      filename.text = filename.text = filename.text.concat((file.name)+"  ");
      da.selected = true;
   }
longCrew#5
Benutzerbild von longCrew
Beiträge: 380
Wohnort: München, Berlin
Registriert: Apr 2009

11.02.2010, 17:20

ActionScript:
1var file:File = File.desktopDirectory.resolvePath("bla.jpg");


fkt das?
Die Lösung ist: das Suchen.
LongCrew = 2 people
longCrew#6
Benutzerbild von longCrew
Beiträge: 380
Wohnort: München, Berlin
Registriert: Apr 2009

11.02.2010, 17:21

oder versuch das mal weiß ned mehr genau
ActionScript:
1file = File.documentsDirectory


irgendeins von bieden fkt:)
Die Lösung ist: das Suchen.
LongCrew = 2 people
longCrew#7
Benutzerbild von longCrew
Beiträge: 380
Wohnort: München, Berlin
Registriert: Apr 2009

11.02.2010, 17:22

mit dem documentsDirectory glaub ich kannst du direkt einen speicherort angeben

aber schau mal in der API ;)
Die Lösung ist: das Suchen.
LongCrew = 2 people
Mole23#8
Benutzerbild von Mole23
Beiträge: 50
Wohnort: Hamburg
Registriert: Feb 2010

Themenautor/in

11.02.2010, 17:23

Cool ich versuchs mal! THX
longCrew#9
Benutzerbild von longCrew
Beiträge: 380
Wohnort: München, Berlin
Registriert: Apr 2009

11.02.2010, 17:26

wenn ned hinhaut meld dich nochmal;)
Die Lösung ist: das Suchen.
LongCrew = 2 people
Mole23#10
Benutzerbild von Mole23
Beiträge: 50
Wohnort: Hamburg
Registriert: Feb 2010

Themenautor/in

11.02.2010, 17:34

Also ein Fehler bekomme ich nicht. Allerdings hat das jetzt auch nicht zum Erfolg geführt. Ich poste mal etwas mehr Code, damit das verständlicher wird:

Oben die "Read In" Funktion, funktionier einwandfrei. Daran sind die unteren beiden Funktion "load" und "dump"angeknüpft, die das über browse ausgewählte File in den Speicher laden und base64 codieren. (funzt ebenfalls)


Die bekannte "addPDF" Funktion, soll ein dargestelltes PDF per Klick auf eine Checkbox auf die gleiche weise laden und codieren.

Am Ende geht das ganze per Webservice raus... (Tut es auch...)

Evtl. hast du ja noch eine Idee... Mir gehen diese langsam aus... Sitze jetzt seit 12 Uhr da dran...


ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
//  File read In
   [Bindable]
   private var fileRef:FileReference;
   
   private function browse():void {
      
      if (fileRef) {
         fileRef = null;
         txt = "";
         
      }
      fileRef = new FileReference();
      fileRef.browse();
      
      fileRef.addEventListener(Event.SELECT, load);
      fileRef.addEventListener(Event.COMPLETE, dump);
   }
   
   // Add PDF-Dokument
   private function addpdf():void {
      
      if (fileRef) {
         fileRef = null;
         txt = "";
         
      }
      
      var file:File = File.desktopDirectory.resolvePath("C:\+ Web/NxCommunicator/Test-PDF.pdf");
      
      fileRef = file;
            
      fileRef.addEventListener(Event.SELECT, load);
      fileRef.addEventListener(Event.COMPLETE, dump);
   }
   
   
   
   
   
   // Load & dump
   private function load(event:Event):void
   {
      fileRef.load();
      Alert.show((fileRef.name)+" wird der Email hinzugefügt!");
   }

   
   public function dump(event:Event):void
   {
      var bytes:ByteArray = fileRef.data;
      var encoder:Base64Encoder = new Base64Encoder();
      
      encoder.encodeBytes(bytes);
      txt = encoder.drain();
      
      arr.addItem(fileRef.name);
      arr.addItem(txt);
      
      filename.text = filename.text = filename.text.concat((fileRef.name)+"  ");
      da.selected = true;
   }
Geändert von Mole23 am 11.02.10 um 18:24 Uhr
crackz@net#11
Benutzerbild von crackz@net
Beiträge: 77
Registriert: Mar 2006

12.02.2010, 10:57

moin moin
also mit der methode

ActionScript:
1File.desktopDirectory.resolvePath()


gibst du einen RELATIVEN pfad von deinem Desktop aus zu der datei an!
also zum beispiel wuerde die datei auf deinem desktop liegen

ActionScript:
1var file:File = File.desktopDirectory.resolvePath("datei.pdf");


liege die datei in deiner applikations Directory z.B. in dem ordner PDF, kannst du das mit

ActionScript:
1File.applicationDirectory.resolvePath("pdf/datei.pdf");


machen.

ach ja... und wenn du es dir mal ausgeben lassen willst hat das file objekt auch noch die eigenschaft "url:String"

also zum ausgeben einfach
ActionScript:
1trace(file.url);


mfg
ich
Geändert von crackz@net am 12.02.10 um 10:59 Uhr
Mole23#12
Benutzerbild von Mole23
Beiträge: 50
Wohnort: Hamburg
Registriert: Feb 2010

Themenautor/in

12.02.2010, 11:08

Erstmal vielen Dank. Ich habe das gerade mal versucht umzusetzen, leider ohne Erfolg. Kennst du dich auch zufällig mit Events aus? Ich glaube das File erkennt er jetzt, aber geht nicht in die Funktion über:


ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// Add PDF-Dokument
   [Bindable]
   private var file:File;
   
   private function addpdf():void {
      
      if (file) {
         file = null;
         txt = "";   
      }

      var file:File = File.applicationDirectory.resolvePath("data/Test-PDF.pdf");
            
      file.addEventListener(Event.SELECT, load2);
      file.addEventListener(Event.COMPLETE, dump2);
   }
   
   private function load2(event:Event):void {
      file.load();
      Alert.show((file.name)+" wird der Email hinzugefügt!");
   }
   
   public function dump2(event:Event):void
   {
      var bytes:ByteArray = file.data;
      var encoder:Base64Encoder = new Base64Encoder();
      
      encoder.encodeBytes(bytes);
      txt = encoder.drain();
      
      arr.addItem(file.name);
      arr.addItem(txt);
      
      filename.text = filename.text = filename.text.concat((file.name)+"  ");
      da.selected = true;
   }
Geändert von Mole23 am 12.02.10 um 11:25 Uhr
crackz@net#13
Benutzerbild von crackz@net
Beiträge: 77
Registriert: Mar 2006

12.02.2010, 13:04

also...
das selece event wird dispatcht wenn du z.B. mit
ActionScript:
1file.browseForOpen();


eine datei mit dem browser ausgewehlt hast.

wenn du eine eine Methode wie resolvPath verwendest brauchst du keinen listener... weil die die anweisung gleich abgearbeitet wird.

wenn du mal in die doku schaust...
zitat aus der doku:

Listeners receive events to indicate the progress, success, or failure of the load. Although you can use the FileReferenceList object to let users select multiple files to load, you must load the files one by one. To load the files one by one, iterate through the FileReferenceList.fileList array of FileReference objects.

also musst du die listener für die load anweisung setzen ^^

ich hoffe das hilft dir weiter und ist einigermaßen verständlich geschrieben ^^

wenn nicht dann melde dich einfach noch ein mal.

mfg
ich
Geändert von crackz@net am 12.02.10 um 13:06 Uhr
Mole23#14
Benutzerbild von Mole23
Beiträge: 50
Wohnort: Hamburg
Registriert: Feb 2010

Themenautor/in

12.02.2010, 13:30

Ja super, danke! Ich werde erstmal ein bisschen rumprobieren. THX nochmal!
Mole23#15
Benutzerbild von Mole23
Beiträge: 50
Wohnort: Hamburg
Registriert: Feb 2010

Themenautor/in

12.02.2010, 14:45

Also irgendwie habe ich das doch nicht so richtig verstanden. Kannst du das noch etwas genauer erläutern? Ich komme hier voll nicht weiter!

Sieht zur Zeit wie folg aus:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
[Bindable]
     private var file:File;
     
   private function addpdf():void {
     
      if (file) {
        file = null;
        txt = ""
      }

       var file:File = File.applicationDirectory.resolvePath("data/Test-PDF.pdf");
         
         filename.text = filename.text.concat((file.name)+"  ");
         da.selected = true;
         
// ------------------ bis hier scheint alles OK ------------------
        
     var bytesx:ByteArray = file.data;
         var encoderx:Base64Encoder = new Base64Encoder();
         
         encoderx.encodeBytes(bytesx);
   inh = encoderx.drain();
         
         arr.addItem(file.name);
   arr.addItem(inh);
      
   }
Geändert von Mole23 am 12.02.10 um 16:41 Uhr
crackz@net#16
Benutzerbild von crackz@net
Beiträge: 77
Registriert: Mar 2006

12.02.2010, 17:19

okay.... ich versuche es dir mal zu erklähren anstatt einfach code zu posten.

also du musst das file schon erst ein mal mit load(oder mit einem FileStream objekt, was einem mehr möglichkeiten bringt) laden. erst dann steht es dir als bytearray zur verfügung. also ladest du es und wartest bis es fertig (complete) ist.

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
         private function loadFile():void
         {

            file.load(); //load methode aufrufen
            
            file.addEventListener(Event.COMPLETE, loadeCompleteHandler);
         }
         
         private function loadeCompleteHandler(event:Event):void
         {
            //hier kannst du jetzt auf data zugreifen
            var byte:ByteArray = new ByteArray();
            byte = file.data;
         }


hoffe das das hilft^^

mfg
ich
Geändert von crackz@net am 12.02.10 um 17:21 Uhr

AntwortenRegistrieren Seite1 2  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2020 Sebastian Wichmann - Flashhilfe.de