有一个java文件,可以动态生成新的文件,文件名随机命名,并存到/var/www/tmpfile里
想在js代码取到新生成的文件,<a href="http://localhost/tmpfile/*.pcap" target="blank">query result</a>
*.pcap是变化的,该怎么获取最新的文件名呢?

解决方案 »

  1.   

    可以用jsp写一段java代码获取该目录下最新的文件(按生产时间逆序),然后替代*,大致如下:
    <%
    File file = new File("/var/www/tmpfile");
    //列出file下的所有pcap文件,按照lastModified逆序排列,可用apache的io包中FileUtil
    String filename = file.getName();
    %>
    <a href="http://localhost/tmpfile/<%=filename%>" target="blank">query result</a>
      

  2.   

    嗯,生成的时候存到本地电脑了,就是取得时候该怎么取呢,因为要不断的生成新的文件,在js文件里怎么更新*.pcap呢?
      

  3.   

    就是获取文件名的问题吧,有两种方式:
    1.服务端生成的文件,服务端肯定是知道这个文件名的;
    客户端定义一个js的query()函数,从服务端获取一下文件名,比如用ajax;
    得到文件名,就可以做你自己的操作了;
    <a href="query()" target="blank">query result</a>2.让生成的文件名有一定规则,比如用时间命名文件,然后用js函数罗列指定目录下的文件名,自己进行排序,然后获取最新的文件名。参考:http://topic.csdn.net/u/20090226/09/670ca853-8d9d-4135-a7ca-a6dc121c8988.html
      

  4.   

    1. linux可以使用shell编程,排序找到最新生成的文件名,然后java执行shell得到结果,返回给客户端.
    2. 用类File列出tempfile下面的所有文件,取得文件创建时间判断,找到最新的,返回给客户端.
      

  5.   

     onExecuteQuery:function(){                                     
                        var filename = (Math.floor(Math.random() * 100000000) + 1)+'.pcap';
                        var downloadWin = new Ext.Window({
                                        title:this.parentCmp.i18n._('Download'),
                                        modal:true,
                                        width:300,
                                        height:100,
                                        items:[{
                                            html:String.format(this.parentCmp.i18n._('<div style="margin:auto">click to download <a href="http://localhost/tmpfile/<%=filename%>" target="blank">query result</a></div>'),result)
                                        }]
    代码如上面所示,结果不对,现在就是要在herf里面用到js变量filename,该怎么修改herf语句呢?
      

  6.   

    你这个是Ext吧。那你就直接
      html:String.format(this.parentCmp.i18n._('<div style="margin:auto">click to download <a  href="http://localhost/tmpfile/'+filename +'" target="blank">query result</a></div>'),result)
      

  7.   


    现获得全部File 然后按照你定义的规则去寻找最新的文件 也可以通过File自带的方法查询文件的创建日期 光用JS是不行的