在线等,FX3的fileupload取value的老问题,望能解决,谢谢大家。  
    <html>
    <head>
        <title>get file input full path</title>
 <script type="text/javascript">
function getid(id) {
return document.getElementById(id);
} function loadfile(){
getid("uploadedFile").onchange=function(){
getid("uploadedFileText").value=getid("uploadedFile").value;
}; 
}
window.onload=loadfile;
</script>
    </head>
    <body>
    <input type="text"  readonly="true" id="uploadedFileText" title="upload file"/>
    <input type="file" name="uploadedFile" id="uploadedFile">
    </body>
    </html>   

解决方案 »

  1.   

    getid是取ID的意思,应改成getById。
    <script type="text/javascript">
    // <![CDATA[
    function inputFileOnChange() {
    if(document.getElementById('my-file').files) {
    // Support: nsIDOMFile, nsIDOMFileList
    alert('value: ' + document.getElementById('my-file').value);
    alert('files.length: ' + document.getElementById('my-file').files.length);
    alert('fileName: ' + document.getElementById('my-file').files.item(0).fileName);
    alert('fileSize: ' + document.getElementById('my-file').files.item(0).fileSize);
    alert('dataurl: ' + document.getElementById('my-file').files.item(0).getAsDataURL());
    alert('data: ' + document.getElementById('my-file').files.item(0).getAsBinary());
    alert('datatext: ' + document.getElementById('my-file').files.item(0).getAsText("utf-8"));
    };
    };
    // ]]>
    </script>
    <div>
    <input type="file" name="my-file" id="my-file" onchange="inputFileOnChange();" />
    </div>
      

  2.   

    楼上的兄弟可能没理解我的意思,我是要将fx下file空间的绝对路径取出来
      

  3.   

    绝对路径就是document.getElementById('my-file').files.item(0).getAsDataURL()
    只不过是被FF加过密的。也就是说,显示出来给人看是看不懂的。但是如果传给img标签,他是认的
      

  4.   


    IE下倒是可以获得上传文件file的路径的。
    lz是否可以考虑在服务器端得到路径,然后在客户端用ajax返回!
      

  5.   

    我给你的代码,就是我找到的专门解决FF里如何取绝对路径即全文件名的。“先说说在FireFox3中如何上传一个文件吧。既然FireFox3中将获取本地文件的路径的方法当做一个安全隐患被禁止了,那么它一定有相关的方法来解决这个问题,否则FireFox3就不能实现在客户端上传文件的功能了。其实FireFox3中引入了一个新的接口用来解决这个问题,那就是nsIDOMFile,它专门被用来从客户端的input type="file"的控件中获取文件数据,这样就可以将本地的文件保存到服务器上。这是一个非常好的解决办法,以至于我们在FireFox3中开发这样的应用程序时,比先前简单获取value值然后再通过服务器端代码上传文件要简单许多,不过令人担忧的是,这个接口只适用于FireFox,在IE和其它的浏览器中并不支持。”所以说,你除了尝试修改一下(我没有详细测试,不喜欢来回切换浏览器)上面我给的代码,就得多找找别的方法了。
      

  6.   

    谢谢这位朋友,但是这种方式是更改客户端配置的做法,也是客户最忌讳之一。
    我上Firefox的开发人员论坛看过,解释说之所以会在3.0之后将fileName.value只保留文件名,是避免客户端有人非法上传文件至服务器...... 唏嘘一下
    哎,就这样吧,firefox既然已经这样设计fileupload了,找其他方法从客户角度来说是不太和谐的,今天匆忙发这样的帖子。
    再次谢谢大家,结贴。
      

  7.   

    最近也碰到这个问题,直接用input的file获取的是完整的路径,但是用onchange事件获取的只是文件名了,应该是ff做了处理了,郁闷。