action怎么可能调用本地程序?
你服务器装在你机器上的吧,所以以为是本地生成的吧?

解决方案 »

  1.   

    liang8305 你好,这么说吧,现在生成的文件在tomcat的bin目录下,而我的结果页面要调用这个文件,怎么办?
      

  2.   

    你这个程序产生了一些txt文件,位置在我的D盘,把那个路径作为参数传到页面上,
    然后页面把那个路径又作为参数放到url里面
    <a href="getFile.do?filePath=D:\\a.txt">文件a.txt</a> 即下载页面
    你getFile.do对应的后台处理程序 再用JAVA里的文件流读取文件,如FileInputStream
    读出来后再放到response输出流里面,具体代码如下:
    ServletOutputStream out = null;
    FileInputStream in = null;
    try { 
    if(null!=path&&0<path.length()){
    in = new FileInputStream(dir+path);
       if(null!=in){
    byte[] photo = new byte[in.available()];
    in.read(photo);
    out = response.getOutputStream();
    out.write(photo);
       }
    }
    }  catch (IOException e) {} 
        finally{
    if(null!=in){
    in.close();
    }
    if(null!=out){
    out.close();
    }
    }
      

  3.   

    allan0527 你好,我的action结束后生成了这些文件,要在页面里读,其实我可以直接在<a href="path" />里写上具体的本地地址,但这样我觉得可移植性太差,希望把这些文件上传到服务器后再用页面访问。也就是说我在action里传的path是工程目录的相对地址,而不是具体的本地文件夹地址。
      

  4.   

    相对路径,绝对路径可以是一样,只是参数的具体值的区别而已。“要在页面里读,其实我可以直接在 <a   href="path"   /> 里写上具体的本地地址,”
    这个是不行的,因为前面说了是用action结束后生成了这些文件,所以文件生成后是在服务器的D盘(假如保存在D盘根目录),<a   href="D:\\a.txt"   />这个肯定访问不了的,因为你发布只是项目资源而已,不是整个服务器的资源,所以你的<a   href="path"   /> path只能是项目内的资源
    另外,在action里面用servlet.getServletContext().getRealPath("/")可以得到工程目录的路径
      

  5.   

    你action生成的时候为什么不指定一个文件夹存放呢?另外,一定要存放到webroot里面的一个文件夹中,例如mytxt里面这样你的<a       href="mytxt/XXX.txt"       /> 就可以了
      

  6.   

    File txt=new File(servlet.getServletContext().getRealPath("/")+"文件夹名/文件名.txt");就可以保存到指定文件夹了
      

  7.   

    写个servlet访问文件,把文件作数据流输出就行了。