Java File Upload e Download RMI

7 respostas
S

Olá, estou precisando implementar um servidor de compartilhamento de arquivos em RMI. O servidor possui uma pasta que compartilha arquivos e o cliente terá a opção de fazer download quanto compartihar arquivos. o Download ja consegui implementar, nao estou conseguindo fazer o upload.

Alguem teria alguma sugestao de como posso fazer isso utilizando RMI?

7 Respostas

I

Acho que voce precisa de um “client callback”.
http://www2.cs.uic.edu/~i441/RMICallback/

Assim como o servidor envia um objeto remoto (que estende UnicastRemoteObject ), é possível fazer isso no outro sentido também.
Se o cliente envia um objeto remoto, ele pode ser usado pelo servidor para executar o método no cliente.

Não sei se era isso que você queria, nem se fui claro o bastante.

S

Nao sei se seria isso, é necessaio somente enviar um arquivo em especifico para o servidor, nao sei como poderia fazer isso

I

Basta fazer um metodo que recebe um array de bytes.
Aí o cliente chama o metodo, enviando os bytes, o sevidor recebe os bytes e salva o arquivo.

Acho que não vi qual é o problema ainda… parece exatamente igual ao download, so que ao contrário.

S

Nao entendi muito bem, meu download esta desta maneira:

public byte[] download(String arquivo) throws RemoteException {
        try {
            File file = new File(this.sharedDir + "/" + arquivo);
            byte buffer[] = new byte[(int) file.length()];
            BufferedInputStream input = new BufferedInputStream(new FileInputStream(file.getAbsolutePath()));
            input.read(buffer, 0, buffer.length);
            input.close();
            return (buffer);
        } catch (Exception e) {
            e.printStackTrace();
            return (null);
        }
    }
V

Você realmente acha que um servidor de compartilhamento RMI é um assunto de “Java Básico”?
Por favor, leia com atenção a descrição dos fóruns antes de postar.

Movido para “Java avançado”.

I

Pois é, eu tinha pensado nisso:

public boolean upload(String arquivo, byte[] bytes) throws RemoteException;

Aki funciona normal, mas não tenho como testar com duas máquinas (só tenho uma em casa).
Até onde eu sei byte[] é Serializable…

P

Alguem poderia me dizer o que seria esse shareDir

File file = new File(this.sharedDir + “/” + arquivo);

queria implantar essa função de download de um arquivo que foi salvo em um diretório do servidor…

Criado 31 de maio de 2011
Ultima resposta 25 de fev. de 2013
Respostas 7
Participantes 4