# Webservice - Anhang senden und codieren



## Mole23 (4. Feb 2010)

Hi zusammen,

kennt sich jemand von euch zufällig mit Webservices und entsprechender Codierung aus?

Ich versende in Flex via Webservice eine Email und möchte gerne auch einen Anhang hinzufügen können. Wie und wo ich auf den Webservice zugreifen kann weiß ich schon. Mein Problem liegt in der Codierung und dem Festlegen des Dateipfades.

this.aWebservice.sendEmail(
toField.text,
fromField.text,
fromNameField.text,
2,
subjectField.text,
[bodyField.text] ,
[?????????????],
"",
"");


Da wo die Fragezeichen stehen liegt mein Problem. Hauptsächlich in der Syntax. Er hätte gerne Arrays in base64 codiert...

Ich dachte schon an folgendes:

arr = new File;
arr[0]="nameDatei"
arr[1]="SGFsbG8"
arr[2]="nameDatei"
arr[3]="SGFsbG8"

Aber wie binde ich das ein ?


----------



## Mole23 (5. Feb 2010)

Erstmal danke für die Zahlreichen Antworten ^^

Ich sitze hier immernoch an dem Dateianhang von einem Webservice. Dieser möchte gerne eine Array aus zwei Strings für den Emailanhang bekommen. Einen String mit dem Dateinamen und einen mit dem Inhalt "SGFsbG8=", damit er die Codierung ausführt. Aber irgendwie schaffe ich es nicht die Ware zu liefern.

Zur Zeit sieht das bei mir wie folgt aus. Ich bekomme auch keine Fehlermeldung. Wäre super nett, wenn mal jemand rüberschaut...


```
public function invokeSendMail(event:MouseEvent):void {
   	
var anhang:Array = ["test.txt", "SGFsbG8="];

this.aWebservice.sendEmail(
toField.text, 
fromField.text, 
fromNameField.text, 
2, 
subjectField.text, 
[bodyField.text] , 
[anhang], 
"", "");
```


----------



## Mole23 (11. Feb 2010)

Hat sich erledigt...  :rtfm:

Thema kann auch gelöscht werden...


----------



## FArt (12. Feb 2010)

> Hat sich erledigt...
> 
> Thema kann auch gelöscht werden...


Community member oder Leecher?

... und wenn du jetzt die Lösung auch noch posten würdest, dann hätten mehrere Leute was davon...



> Erstmal danke für die Zahlreichen Antworten ^^


siehe Link!


----------



## Mole23 (12. Feb 2010)

Du hast ja recht!

Hier erstmal alles zum Thema Datei einlesen ( Programm läuft über Flex ):


```
//  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);
	}
	
	// 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();
		
		Alert.show(
		
		arr.addItem(fileRef.name);
		arr.addItem(txt);
		
		filename.text = filename.text = filename.text.concat((fileRef.name)+"   ");
		da.selected = true;
	}
```


Und so übergibt man die base64 codierte Datei an den Webservice:


```
public var aWebservice:CommunicationAttService = new CommunicationAttService();
   	
public var arr:ArrayOf_xsd_string = new ArrayOf_xsd_string();
public var noarr:ArrayOf_xsd_string = new ArrayOf_xsd_string();
   
   	public function onCreationComplete(event:Event):void {
    	aWebservice.addsendEmailAttachmentEventListener(onSendEmail);
    	aWebservice.addCommunicationAttServiceFaultEventListener(onFault);
   	}
   
   	public function onSendEmail(event:SendEmailAttachmentResultEvent):void {
    	var result:Object = event.result;
   	}
   
   	public function onFault(event:FaultEvent):void {
    	trace(event);
   	}
	

	// Webservice: SendMail & Checkboxes
   	public function invokeSendMail(event:MouseEvent):void {

 	var body:String = new String();
	body = bodyField.text;
	
    
   	
   this.aWebservice.sendEmailAttachment(toField.text, fromField.text, fromNameField.text, 2, subjectField.text, body, noarr, "", "");
   			Alert.show("Email wurde versendet!");
   		}
```


----------

