Java Applet下载文件文件

时间:2011-08-08 08:49:58

标签: java javascript applet

我有一个在用户下载并在本地打开的HTML文件中执行的applet(即URL栏上的file://)。此applet有一个方法,可以从Web下载文件并将其存储在运行applet的目录内的目录中。在我的HTML文件中,我调用该函数来下载文件,但是当我第二次调用它时,为了下载另一个文件,我得到一个Error calling method on NPObject.我在Java端没有任何错误(我让控制台打开并保持干净)。 这可能是什么问题?非常感谢你的帮助。下面是applet的代码。

import java.security.*;
import java.io.*;
import java.nio.channels.*;
import java.net.*;

public class EPPenDrive extends java.applet.Applet {

    public final static String baseURL = "http://localhost/data/documents/";

    public String downloadFile(final String filename) {
        return (String)AccessController.doPrivileged(new PrivilegedAction() {
            public Object run() {       
              try {
                URL finalURL = new URL(baseURL + filename);
                ReadableByteChannel rbc = Channels.newChannel(finalURL.openStream());
                URL appletDir = getCodeBase();
                FileOutputStream fos = new FileOutputStream(appletDir.getPath() + "documents/"+ filename);
                fos.getChannel().transferFrom(rbc, 0, 1 << 24);
                return 1;
              } catch (Exception x) {
                x.printStackTrace();
                return null;
              }
            }
          });
    }

    public void init() { }
    public void stop() { }

}

1 个答案:

答案 0 :(得分:0)

我发现了问题:run()方法会在返回时阻止1.我将其更改为return null,现在一切正常。 :)