使用 jQuery 输入文件的完整路径

发布于 2024-09-14 06:59:00 字数 93 浏览 6 评论 0原文

当我在带有 type="file" 的输入上调用 val() 时,我只获得文件名而不是完整路径。我怎样才能获得完整路径?

When I call val() on an input with type="file" I only get file name rather than full path. How can I get full path?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

星星的轨迹 2024-09-21 06:59:00

你不能:这是所有现代浏览器中的一项安全功能。

对于 IE8,它默认处于关闭状态,但可以使用安全设置重新激活:

使用输入类型=文件对象选择文件时,value 属性的值取决于用于显示的安全区域的“将文件上传到服务器时包含本地目录路径”安全设置的值包含输入对象的网页。

仅当启用此设置时,才会返回所选文件的完全限定文件名。禁用该设置后,Internet Explorer 8 会将本地驱动器和目录路径替换为字符串 C:\fakepath\,以防止不当信息泄露。

在我所知道的所有其他当前主流浏览器中,它也被关闭。文件名是你能得到的最好的。

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

You can't: It's a security feature in all modern browsers.

For IE8, it's off by default, but can be reactivated using a security setting:

When a file is selected by using the input type=file object, the value of the value property depends on the value of the "Include local directory path when uploading files to a server" security setting for the security zone used to display the Web page containing the input object.

The fully qualified filename of the selected file is returned only when this setting is enabled. When the setting is disabled, Internet Explorer 8 replaces the local drive and directory path with the string C:\fakepath\ in order to prevent inappropriate information disclosure.

In all other current mainstream browsers I know of, it is also turned off. The file name is the best you can get.

More detailed info and good links in this question. It refers to getting the value server-side, but the issue is the same in JavaScript before the form's submission.

蝶…霜飞 2024-09-21 06:59:00

好吧,获得完整路径是不可能的,但我们可以有一个临时路径。

试试这个:

它会给你一个临时路径,而不是准确的路径,如果你想像这个 jsfiddle 示例一样显示选定的图像,你可以使用这个脚本(通过选择图像以及其他文件来尝试):-

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>");
});

它不完全是您正在寻找的内容,但也许它可以在某个地方帮助你。

Well, getting full path is not possible but we can have a temporary path.

Try This:

It'll give you a temporary path not the accurate path, you can use this script if you want to show selected images as in this jsfiddle example(Try it by selectng images as well as other files):-

JSFIDDLE

Here is the code :-

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>");
});

Its not exactly what you were looking for, but may be it can help you somewhere.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文