Java-апплет Скачать файл - PullRequest
3 голосов
/ 23 ноября 2011

Я пытаюсь создать Java-апплет, который загружает файл на клиентский компьютер. Как Java-приложение этот код работал нормально, но когда я пытался в качестве апплета, он ничего не делает. Я подписал файл .jar и не получаю никаких сообщений об ошибках безопасности

Код:

import java.io.*;
import java.net.*;
import javax.swing.*;


public class printFile extends JApplet {

public void init(){ 

try{
    java.io.BufferedInputStream in = new java.io.BufferedInputStream(new
    java.net.URL("http://www.google.com").openStream());
    java.io.FileOutputStream fos = new java.io.FileOutputStream("google.html");
    java.io.BufferedOutputStream bout = new BufferedOutputStream(fos,1024);
    byte data[] = new byte[1024];
    while(in.read(data,0,1024)>=0)
    {
        bout.write(data);
    }
    bout.close();
    in.close();


} catch(IOException ioe){     
}  
}
}

Может кто-нибудь помочь?

Ответы [ 2 ]

4 голосов
/ 24 ноября 2011
FileOutputStream fos = new FileOutputStream("google.html");

Измените это на:

File userHome = new File(System.getProperty("user.home"));
File pageOutput = new File(userHome, "google.html");
FileOutputStream fos = new FileOutputStream(pageOutput);  //see alternative below

В идеале вы должны поместить вывод в любое из:

  1. A подкаталог (возможно, основанный на имени пакета основного класса - чтобы избежать коллизий) user.home. user.home - это место, где пользователь должен иметь возможность читать и создавать файлы.
  2. Путь, указанный конечным пользователем с помощью JFileChooser.
1 голос
/ 23 ноября 2011

См. Этот вопрос,

Самоподписанный апплет Может ли он обращаться к локальным файловым системам

Я полагаю, это поможет вам, вам нужно написать свой код, чтобы использовать PrivilegedAction.

http://docs.oracle.com/javase/1.4.2/docs/api/java/security/PrivilegedAction.html

...