gpt4 book ai didi

html - 即使在 Linux 中,从 获取值也会给出 C :\fakepath\filename,

转载 作者:行者123 更新时间:2023-11-27 22:47:13 26 4
gpt4 key购买 nike

我从 Chrome 和 Opera 中的文件输入元素中得到了一些非常奇怪的行为(可能更多,尚未测试)。

我有以下 HTML:

<div id="profileImgContainer" class="formFile">
<label>Profile Picture</label><div>
<input type="text" id="profileImgText"><input type="button" value="Choose File" id="profileImgButton">
</div>
<input type="file" id="profileImg" name="profileImg">
</div>

然后使用以下 jQuery 获取文件输入的值并将其放入(可见的)文本框中。实际的文件输入是隐藏的。

$(".formFile input[type='file']").live('change', function()
{
$(this).parents(".formFile").find("input[type='text']").val($(this).val());
});

我做了 a JSFiddle for you try out .在 Firefox 中,文本框很乐意采用文件元素的文件名(不关心路径)。 In Chrome and Opera, however, when a file is selected the file path in the visible text box changes to C:\fakepath\[filename] where [filename] is the所选文件的名称。这个路径显然是假的,但我想知道的是为什么要改成这个路径,以及隐藏的上传元素中的文件是否仍然可以正常上传。我猜这是一项安全功能,但我可能错了。

最佳答案

这是一种缓解因允许任意外部代码在浏览器中运行而导致的安全问题的尝试:脚本(我们假设它可能来自恶意攻击者)无法看到(并且可能通过 AJAX 进行通信) ) 有关您的本地文件的信息。

想象一下,如果脚本可以自由设置文件上传和提交表单会发生什么。

正是出于这个原因,这种有关文件上传控制和脚本的行为是由某种标准(我相信是 DOM 规范的一部分)强制执行的。

关于html - 即使在 Linux 中,从 <file> 获取值也会给出 C :\fakepath\filename,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6466383/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com