问题描述:
        想做这样一件事。
        在jsp页面上提供一个链接,用户点击可以实现文件的下载。
        后台java类要先与服务端通讯,发送消息,而后服务端返回所请求文件的内容以及http 200OK状态,表明所请求文件存在。最后将这个链接串发送到前台jsp页面,用户点击下载即可。
        PS:整个过程中并没有实体文件存在,用户所请求的文件一直存在于内存中,也就是说当用户请求文件下载时,会自动在内存中生成一个虚拟文件,在用户下载完文件后,自动释放文件所占用内存。
        不知描述得明白否??有会的XDJM帮帮忙,谢谢先!解答提示:设置response.setHeader("Content-Disposition", "attachment; filename=?");
          getOutputStream,然后out文件流.out完成后释放资源即可.不支持断点续传.新问题:不太清楚“getOutputStream,然后out文件流.out完成后释放资源即可”的含义。
        自己试着写了点东西,可是写进去的东西仅是字符串,没有达到要求,
        生成一个特定的文件,比如邮件,直接用outlook express打开就可以正常地查看其内容。

解决方案 »

  1.   

    getOutputStream是Socket编程中用到的,就是发送数据流,就是传送数据,但是另外客户端得有一个BufferedReader .具体就是这样的.
    //client.javaSocket cl = null, cl2 = null;
    BufferedReader is = null;
    DataOutputStream os = null;try{
    cl = new Socket("server",PORT);
    is = new BufferedReader(new InputStreamReader(cl.getInputStream()));
    //用于接受数据
    os = new DataOutputStream(cl.getOutputStream());//用于向server发数据
    }catch(UnknownHostException e1){
    System.out.println("Unknown Host:" + e1);
    }catch(IOException e2){
    System.out.println("IO error:" + e2);
    }//server.java
    protected ServerSocket listen;
    listen = new ServerSocket(PORT);
    Socket client = listen.accept();
    BufferedReader is;
    DataOutputStream os;
    is = new BufferedReader(new InputStreamReader(client.getInputStream()));
    //接收client发来的数据
    os = new DataOutputStream(client.getOutputStream());//发送数据到client//发送数据用函数os.write(":)");
    //读取数据用函数(String)is.read();
      

  2.   

    数据是从服务器传过来的,客户端(jsp页面)要做的事情就是处理这些数据。现在的麻烦在于处理不好这些数据,无法依据文件的格式生成下载文件。
      

  3.   

    out.print()我是用这个来往下载文件中写内容的,可是不管怎么写,都会自动写入两个空格,导致文件格式不对。
    请高手指教,分有的是,呵呵。