# Datei als Methodenrückgabe



## kolorat (14. Jan 2005)

Hallo!

Ich habe eine kleine Server-Client-Application geschrieben. Ich würde jetzt gerne eine Server-Methode schreiben, mit der der Client eine auf dem Server vorhandene Datei zu sich transferieren kann, also: 

Client ruft Methode "getFile" auf => Server-Methode liest diese aus und gibt sie als Rückgabewert zurück

Wie könnte eine solche Methode aussehen?


```
public File getFile(String fileName){
    
    File file =new File(fileName);
    return file;
}
```

Wäre dies so möglich?


----------



## thE_29 (14. Jan 2005)

sagen wir mal du arbeitest mit einem Stream!

Du musst ihm einen InputStream zurückgeben, sodass er das File auslesen kann!!

also


```
private InputStream writeFile(String strFile) throws FileNotFoundException
  {
    return new FileInputStream(new File(strFile));
  }
```


----------



## kolorat (14. Jan 2005)

STOP! :meld: 
Andere Idee!

1) Wie kann ich einen Dateidownload von Clientseite starten (ist ein Browserapplet) ?

2) Alternative: Wie kann ich von Clientseite ein PDF-File auf dem Server öffnen?


----------



## foobar (15. Jan 2005)

> 2) Alternative: Wie kann ich von Clientseite ein PDF-File auf dem Server öffnen?


Durch einen Httprequest z.b. http://mydomain.org/my.pdf


----------



## Guest (15. Jan 2005)

1)


			
				thE_29 hat gesagt.:
			
		

> sagen wir mal du arbeitest mit einem Stream!
> 
> Du musst ihm einen InputStream zurückgeben, sodass er das File auslesen kann!!
> 
> ...




Klappt irgendwie net, Java sagt mit:


```
java.io.NotSerializableException: java.io.FileInputStream
....
```
obwohl ich die Klasse mit "implemts java.io.Serializable" gemacht habe.

2)


> Durch einen Httprequest z.b. http://mydomain.org/my.pdf



Hmm, habe ich gerade versucht mit der "sinetfactory.jar". Irgendwie steig ich dar nicht so ganz durch: 
Hmm, wenn z.B. Die Datei auf C:/PDF liegt und die Datei my.pdf heißt, IP ist 192.168.0.2, RMI benutzt Port 1234(falls man das braucht). Wie muss dann die Url heißen? Müsste ich doch im Browser testen können, ob die dann richtig ist, oder? 

Hier die Klasse: 

```
package http;


import com.jscape.inet.http.*;
import com.jscape.inet.mime.MimeException;

public class HttpConnection extends HttpAdapter {
	
	private String url;
    
    public HttpConnection(String url) {
        this.url = url;
    }
    
    // print out contents of URL
    public void getUrl() throws HttpException, MimeException {
        Http http = new Http();
        
        // capture Http related events
        http.addHttpListener(this);
        
        // create request
        HttpRequest request = new HttpRequest(url,"GET");
        
        // get response and print to console
        HttpResponse response = http.getResponse(request);
        System.out.println(response.getBody());   
    }
    
    public void connected(HttpConnectedEvent evt) {
        System.out.println("Connected to: " + evt.getURL());
    }
    
    public void disconnected(HttpDisconnectedEvent evt) {
        System.out.println("Disconnected from: " + evt.getURL());
    }	
}
```

Und wie kann ich dann den Acrobat öffnen, oder öffnet dieser sich von alleine?


Nochmal mein Problem im Detail:

-Habe einen Server-Client Application mit RMI erstellt.
-Ich erzeuge in einem Package eine PDF-Datei.
-Diese PDF-Datei möchte ich nun entweder zum jeweiligen Client kopieren, oder mit dem Acroreader vom Client aus  öffnen.

Momentan weiss ich echt nicht weiter, wäre super wennn mir einer einen Tip geben könnte![/code]


----------



## kolorat (15. Jan 2005)

hoppla, habe vergessen mich einzuloggen.

der letzte post war natürlich von mir


----------

