好像applet引用的codebase只能是服务器上同级发布目录下的文件吧?
那你可以写一个程序放到web根目录下,其功能是读取目标文本文件,然后输出给客户端不就行了?

解决方案 »

  1.   

    哈哈,我是菜鸟一只。这个问题我以前回答过。我正好编过一个程序,把服务器上没有数字签名、与.class在同一个目录下的文件一把头读到 Applet 的函数,希望对你有帮助:    public int DownLoadRemoteFile()
        {
            URL              fileURL;
            InputStream      input;
            DataInputStream  fd;
            String          x;
            int              i,y,Length;
            byte            FileBuffer[];        x=getDocumentBase().toString(); // 构造数据文件完整的 URL
            y=x.lastIndexOf("/");
            x=x.substring(0,y+1);        try // 打开数据文件
            {
                fileURL=new URL(x+"/"+getParameter("FILENAME"));
            }
            catch (MalformedURLException e)
            {
                fileURL=null;
            }        try // 打开下载输入流
            {
                input=fileURL.openStream();
            }
            catch (IOException e)
            {
                input=null;
            }        fd=new DataInputStream(input); // 打开数据流
            FileBuffer=new byte[90480]; // 为文件开辟存储空间,已经文件大小是 90480
            try
            {
                fd.readFully(FileBuffer); // 把文件读进来
            }
            catch(IOException e)
            {
            }        try // 关闭数据流
            {
                fd.close();
            }
            catch(IOException e)
            {
                fd=null;
            }
            try
            {
                input.close();
            }
            catch(IOException e)
            {
                input=null;
            }        return 0;
        }
    不过, 要在 .htm 文件里加入:
    <param name=FILENAME value="你的数据文件名"> 
    如果数据文件与 .class 不在同一个目录,那只要修改构造文件名部分的代码就可以了。
      

  2.   

    javaing() 
    因为WEB根目录不一定,万一别人的根目录与平常设置不同或者改变了怎么办?icessl(冰山上的来客)
    你说的方法还是下载WEB根目录以下的文件啊。
      

  3.   

    可以这样试试,首先在按下按钮后,把指定的文件拷贝到WEB目录下的一个目录,然后返回该路经给浏览器,下载,最后删除另时文件!
    不用这种方法的话,可以考虑一下以下方法:先用IO读文件,然后获取CUSTOMER的IP然后通过SOCKET发送文件,不过这种方法的最大问题是客户端,因为要把socket转换成TCP连接(不大好实现)
      

  4.   

    你可以看看SAK,里面有你要解决的方法。
    当然,你也可以在服务器上另写一个服务程序,然后用socket 下载。