到目前为止,我编写了一个脚本,以便我可以浏览文件并查看文件的打印名称。这是脚本:
<form action="upload.php" method="post" enctype="multipart/form- data">
Select:
<input type="file" name="fileToUpload" id="fileToUpload">
</form>
当我点击浏览按钮并选择一个文件时,我的网页上只会打印文件名(我的网页浏览器是Firefox,而我使用的是本地服务器)。有没有办法打印文件的整个地址?到目前为止,我在网上发现的主要是提示我们事先知道的方式&#34; / path / to / file&#34;。但是如果我随机选择一个文件怎么办呢?如果由于安全问题而无法用PHP执行此操作:
是否可以使用C,C ++,html等进行操作?
我真的需要显示目录的本地路径。有哪些替代方案?答案是它无法完成?我找到了这个网站http://www.htaccesstools.com/articles/full-path-to-file-using-php/
不知道它是如何运作的。
另一种选择是定义一个固定路径,让用户只选择该目录,因为我知道它可以打印出来。它有意义吗?
答案 0 :(得分:1)
没有办法,因为显示器是由浏览器控制的。某些浏览器将显示整个路径,而其他浏览器仅显示文件的名称。
答案 1 :(得分:1)
旧版浏览器曾允许不受限制地访问完整路径,因此并非不可能,但出于安全考虑,您的最佳答案将是一种解决方法。
<小时/>
<小时/> HTA申请
如果您在本地工作,一个选项是您可以将页面作为HTML应用程序运行。遗憾的是,这使用Internet Explorer作为引擎。但是,如果你可以逃脱HTA,这就是你想要的:
<!--test.hta-->
<HTML>
<HEAD>
<HTA:APPLICATION ID="testFile" BORDER="thick" BORDERSTYLE="complex"/>
<TITLE>HTA - Test file</TITLE>
</HEAD>
<BODY>
<input type="file" onchange="alert(this.value)">
</BODY>
</HTML>
受信任的网站
更好的选择,只需使用Internet Explorer,然后将您的页面添加到Internet Explorer的可信站点。然后你的解决方案就像:
<input type="file" id="fileUpload" onchange="alert(this.value)">
以下是如何将网站添加到您信任的网站:
自定义安全级别
您还可以为Internet Explorer全局启用此行为:
<小时/>
<小时/> Firefox似乎不支持抓取完整的URL。但正如提到的here,似乎确实存在“mozFullPath”属性:
我在浏览器中尝试过,它似乎是一个不存在的属性。我无法在任何地方找到有关如何利用此属性的任何文档。但是如果它变得有用的话,它是一个值得关注的属性。
<小时/>
<小时/> 在HTML5中,您可以编写
this.files[0]
来引用File对象。属性包括“name”和“lastModifiedDate”,“size”和“type”,如下所述:
https://developer.mozilla.org/en-US/docs/Web/API/File
在HTML5中,您实际上可以使用blob并从所选文件创建对象URL并显示预览。这可以通过URL.createObjectURL(...)完成,然后创建图片并将其src
设置为生成的临时网址。请参阅this fiddle。(credit goes to this post)
最后,您可能会非常喜欢:
答案 2 :(得分:0)
出于安全原因,您可以这样做。 Javascript无权访问文件系统,请查看以下答案:How to get full path of selected file on change of <input type=‘file’> using javascript, jquery-ajax?
答案 3 :(得分:0)
我确实遇到了同样的问题,但情况并非如此。只有IE10给了我完整的路径而firefox(可能还有其他所有的)没有。在我的情况下,我使用带有php的服务器,所以我要求用户选择该文件,然后我将其上传到服务器上以便根据我的需要使用它。我希望它有所帮助。
答案 4 :(得分:0)
这似乎你想要文件的完整路径。
请尝试使用:__FILE__
答案 5 :(得分:0)
使用JavaScript和隐藏字段可以执行此操作:
$('#someHiddenField').val( $('#myFileField').val() );
但请记住,并非所有浏览器都返回完整路径(特别是FF只返回文件名)。
答案 6 :(得分:0)
获取客户端文件到服务器端的完整路径是暴露客户端文件系统访问的东西。这是不允许的,因为有几个安全原因。
答案 7 :(得分:0)
您需要更改浏览器的设置,然后才能访问文件的相对路径。
使用 this.files [0] .webkitRelativePath
,您将获得真正的路径FirFox你将使用 this.files [0] .mozFullPath