从文件input使用jQuery的完整path

当我在type="file"的input上调用val() ,我只得到文件名而不是完整path。 我怎样才能获得完整的path?

你不能:这是所有现代浏览器的安全function。

对于IE8 ,默认情况下它是closures的,但可以使用安全设置重新激活:

当通过使用input type = file对象select文件时,value属性的值取决于用于显示Web页面的安全区段的“将文件上载到服务器时包含本地目录path”的值包含input对象。

仅当启用此设置时才会返回所选文件的完全限定文件名。 当设置被禁用时,Internet Explorer 8用stringC:\ fakepath \replace本地驱动器和目录path,以防止不适当的信息泄露。

在我所知的所有其他主stream浏览器中,它也被closures。 文件名是最好的,你可以得到。

更详细的信息和在这个问题的好链接。 它指的是获取服务器端的值,但是在提交表单之前JavaScript中的问题是相同的。

那么,走完全路是不可能的,但我们可以有一个临时path。

尝试这个:

它会给你一个临时path,而不是准确的path,如果你想显示select的图像,可以使用这个脚本,如在这个jsfiddle例子(尝试通过selectng图像以及其他文件): –

的jsfiddle

这是代码: –

HTML: –

 <input type="file" id="i_file" value=""> <input type="button" id="i_submit" value="Submit"> <br> <img src="" width="200" style="display:none;" /> <br> <div id="disp_tmp_path"></div> 

JS: –

 $('#i_file').change( function(event) { var tmppath = URL.createObjectURL(event.target.files[0]); $("img").fadeIn("fast").attr('src',URL.createObjectURL(event.target.files[0])); $("#disp_tmp_path").html("Temporary Path(Copy it and try pasting it in browser address bar) --> <strong>["+tmppath+"]</strong>"); }); 

它不是你正在寻找的,但可能是它可以帮助你的地方。

如上所述,这通常是权限问题。 尝试和将文件移动到不同的区域,并授予它完全的权限。

var path = $('#file')。attr(“value”);