gpt4 book ai didi

javascript - <input type=file>, jwplayer, javascript 问题

转载 作者:行者123 更新时间:2023-11-29 22:32:12 24 4
gpt4 key购买 nike

我显示一个文件打开框,以便用户可以在他们的计算机上选择一个文件:

<input type="file" id="upload_input"/>

但是当我得到用户在 Javascript 中选择的文件时(见下面的代码),我认为这是“安全的”,因为 javascript 在客户端执行——我得到的只是文件,而不是完整路径——< em>尽管 input type=file 始终为您提供的完整路径和文件名出现在“浏览”按钮旁边的字段中。

换句话说,用户选择一个位于他机器上的文件,例如 c:/aFolder/thefile.rtf。然后在选择该文件后,完整路径出现在“浏览”按钮旁边的字段中:c:/aFolder/thefile.rtf

然而,当我以编程方式检索该字段的值时,整个路径被剥离,我所拥有的只是文件名:

filename = document.getElementById('upload_input').value;
alert("The selected file name is " + filename);

如果您无法以编程方式获取完整路径,为什么 input type=file 控件还要费心向用户显示完整路径?毕竟这一切都发生在客户端,这并不是服务器上的完整路径。

另一个问题:我使用上面的文件名并构建了该文件的完全限定路径,是为了让我的 JWplayer 代码正常工作。我在这里为开发创建的完整路径是临时的。

换句话说,当我得到上面的文件名时,我会这样做:

vidFname = ("c:/xampp/htdocs/theWebsite/aFolder/" + filename);
alert("The full path is: " + vidFname);

然后我尝试在 Jwplayer 中播放视频:

playlist = { file: vidFname };

theJwPlayer().load(playlist);
theJwPlayer().play(true);

但是 Jwplayer 给我“权限被拒绝或找不到文件”。

为了让它工作,我必须改变以下内容:

vidFname = ("http://localhost/theWebsite/aFolder/" + filename);
alert("The full path is: " + vidFname);
playlist = { file: vidFname };
theJwPlayer().load(playlist);
theJwPlayer().play(true);

通过更改我的本地主机的路径,上面的代码可以工作——视频加载并成功播放。

注意:我不认为这是一个“文件夹权限”问题,因为我可以在我的计算机上使用不同的 .FLV 播放器(独立)应用程序在同一位置播放完全相同的文件。因此,不是我的 c:/xampp 中的文件夹权限导致 Jwplayer 说“权限被拒绝或文件未找到”。

为什么 Jwplayer(或者它是 Javascript..?)不允许我在调用时使用文件的完全限定路径名jwplayer().load() ?

毕竟,我使用的是 Javascript 中的“theJwPlayer”,它在客户端计算机上运行,​​并且该文件也在客户端计算机上,因此这不是安全问题。

或者我在这里遗漏了什么?注意:如果这个问题是无知的,我深表歉意,但以我目前的网络编程水平,你可能很久以前就已经通过了,这很令人费解,特别是 jwplayer().load() 没有使用完全限定的路径名​​。

最佳答案

浏览器不会显示 JavaScript 代码的实际文件路径。这是安全问题。如果不使用(新的,仅在新浏览器中可用)HTML5 文件处理 API,您将无法获取本地文件,即使是那些也不会为您提供完整的文件路径名。

同样地,当文件输入与表单一起提交时,服务器也不会获取完整路径。

我认为您正在使用的这个媒体播放器工具不太可能设计用于处理本地文件(即,运行浏览器的本地文件系统上的文件)。

关于javascript - &lt;input type=file>, jwplayer, javascript 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6542559/

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