首页 / 知识
如何从Firefox 3中的HTML输入表单获取文件路径
2023-04-16 11:10:00

How to get the file path from HTML input form in Firefox 3
我们有一个带有
在IE7(可能是所有著名的浏览器,包括旧的Firefox 2)中,如果我们提交" // server1 / path / to / file / filename"之类的文件,它将正常工作并提供指向该文件的完整路径。 在Firefox 3中,由于其新的"安全功能"来截断路径,因此它仅返回"文件名",如Firefox Bug跟踪系统(https://bugzilla.mozilla.org/show_bug.cgi?id=143220)所述 我不知道如何克服这个"新功能",因为它会使我的Web应用程序中的所有上传表单停止在Firefox 3上运行。 谁能帮忙找到一个解决方案来在Firefox 3和IE7上获取文件路径?
这里有一个重大误会。为什么在服务器端需要完整的文件路径?假设我是客户端,并且在 只有当客户端和服务器都在同一台计算机上运行时,它才起作用,因为您将可以访问同一硬盘文件系统。仅当您在本地开发网站时,Webbrowser(客户端)和Webserver(服务器)同时运行在同一台计算机上时,才会发生这种情况。 完整文件路径正在MSIE和其他古老的网络浏览器中发送是由于安全漏洞。 W3和RFC2388规范从未提及包含完整文件路径。仅文件名。 Firefox可以正常工作。
要处理上传的文件,您不需要知道完整的文件路径。如果是
如何在服务器端获取上载文件的内容取决于您使用的服务器端编程语言。
每当要获取上载文件的文件名部分时,都应从文件名中修剪完整路径。该信息即与您完全无关。另请参见例如此Apache Commons FileUpload FAQ条目
为了在Firefox中进行预览,可以使用此功能-附件是第一个示例中的附件元素的对象:
我们无法在FF3中获得完整的文件路径。以下内容可能对自定义文件组件很有用。
实际上,就在FF3推出之前,我做了一些实验,FF2仅发送文件名,就像Opera 9.0一样。仅IE发送完整路径。这种行为是有道理的,因为服务器不必知道用户将文件存储在计算机上的位置,因此与上传过程无关。除非您正在编写Intranet应用程序并通过直接网络访问来获取文件! 发生了什么变化(这就是您所指的错误项的真正意义)是FF3不再允许从JavaScript访问文件路径。而且不要在其中键入/粘贴路径,这对我来说比较烦人:我有一个shell扩展,它将文件的路径从Windows资源管理器复制到剪贴板,并且我经常以这种形式使用它。我通过使用DragDropUpload扩展解决了该问题。恐怕这变成了题外话。 我想知道您的Web窗体正在做什么以停止使用这种新行为。 [编辑]在阅读由Mike链接的页面后,我确实看到该路径的Intranet使用(例如,标识用户)和本地使用(显示图像的预览,文件的本地管理)。用户Jam-es似乎为nsIDOMFile提供了一种解决方法(尚未尝试)。 解决此问题的一种极为丑陋的方法是让用户手动在文本框中键入目录,然后将其重新添加到JavaScript中文件值的前面。 混乱...但这取决于您正在使用的用户级别,并且可以解决安全问题。
的JavaScript
这是一个替代解决方案/修复程序...在FF3中,您可以在文本框中而不是文件浏览框中检索文件的完整路径。还有...通过拖放文件! 您可以将文件拖放到html页面的文本框中。它将显示文件的完整路径。这些数据可以轻松地传输到您的服务器或对其进行操作。 您所要做的就是使用扩展DragDropUpload http://www.teslacore.it/wiki/index.php?title=DragDropUpload 此扩展名将帮助您将文件拖放到"文件浏览(输入文件)"框中。但是,如果您尝试检索,则仍然无法获取文件的完整路径。 因此,我对该扩展进行了一些微调。通过这种方式,我可以将文件拖放到任何"文本输入"框中,并获得文件的完整路径。因此,我可以在FF3 Firefox 3中获取文件的完整路径。 如果您需要的不是确切的路径,而是对脱机工作文件的引用,那么这是一个对您有用的示例。 http://www.ab-d.fr/date/2008-07-12/ 它是法语,但是代码是javascript :)
这是本文指向的参考: 看一下XPCOM,如果客户端使用Firefox 3,则可能会使用某些东西。 根本无法使用FF3做到这一点。 另一个选项可能是使用applet或其他控件来选择和上传文件。 |
最新内容
相关内容
linux命令中文输入?
linux命令中文输入?,系统,单位,软件,管理,权威,音乐,命令,模式,录像带,短片,linux系统中的,vi文字编辑器下能输入中文吗_linux文本编辑命令vilinux输入命令星号?
linux输入命令星号?,密码,网络,系统,通讯,概念,情况,数据,术语,网关,表示,如何使linux在输入密码状态下显示星号1、当你在终端输入密码时显示获取linux时间命令行?
获取linux时间命令行?,时间,系统,信息,命令,工具,工作,代码,数据,服务,环境,Linux系统里的expect里面怎么打印当前时间?1、有时候需要使用今天linux命令界面输入法?
linux命令界面输入法?,系统,工具,信息,第三,软件,输入法,名字,盘后,语言,区域,linux怎么切换输入法1、在运用程序中,您需要找到“系统工具”并linux输入空格的命令?
linux输入空格的命令?,系统,密码,工作,命令,管理,环境,电脑,终端,空格,指令,linux加空格后的执行顺序1、输入“uname”,然后按“Shift + Spacelinux终端命令输入?
linux终端命令输入?,系统,工具,电脑,工作,密码,命令,终端,照片,第一,管理,linux中的命令如何输入目录方法1:使用Ping命令打开电脑的“终端”。linux命令行输入取消?
linux命令行输入取消?,系统,档案,命令,情况,管理,状态,信息,环境,百度,目录,Linux撤销上一步操作的命令是什么Linux退出编辑命令是gedit或vimlinux的图形输入命令?
linux的图形输入命令?,系统,密码,工作,地址,工具,信息,环境,终端,电脑,地方,linux,按了ctrl+alt+F1,进入了类似纯命令行的界面,让输入login信linux界面输入命令?
linux界面输入命令?,工作,系统,信息,地址,平台,软件,位置,环境,盘中,设计,linux下如何查看软连接?1、,软链接可以理解成快捷方式,也清楚知道原文linux命令行获取id?
linux命令行获取id?,系统,信息,管理,名称,命令,进程,代码,状态,下来,单位,如何在Windows和Linux下获取当前线程的ID号1、sizeof(pthread_t) =linux命令行输入汉字?
linux命令行输入汉字?,系统,软件,发行,管理,终端,命令,模式,编辑,文件,文本,Linux命令行可以用什么中文输入法1、fbterm的话,加上ucimf就行了。linux基本命令怎么输入?
linux基本命令怎么输入?,地址,工作,系统,位置,密码,命令,电脑,管理,信息,终端,linux中使用vi指令后怎么输入?1、[Ctrl]+[f]:屏幕向下移动一页,相