相信很多人都运用
过<input type="file"/>
这样的HTML控件,它看起来非常普通,是我们在做Web运用
程序中用于上传客户端本地文件时不可缺少的控件,然而最近我发觉
这个控件在最新的FireFox阅读
器(或者最新的IE8中也会存在这个疑问
,我没有尝试过,读者可以试一下)中却失去了效果,导致我们在通过这个控件的value属性得到的值中只包含了文件名而没有文件路径,这个在IE7
中是可以正常获取到全文件名的(即文件完整路径+文件名)。在IE中我们可以直接通过request.getParamter("file");就 ok 了。可是在firefox
中不行,它认为这是不安全的。
下面的这一个html可以帮助我们解决在firefox中获取不到file的路径的问题 :
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Page</title>
<script type="text/javascript">
function readFile(fileBrowser) {
if (navigator.userAgent.indexOf("MSIE")!=-1) {
readFileIE(fileBrowser);
} else if (navigator.userAgent.indexOf("Firefox")!=-1 || navigator.userAgent.indexOf("Mozilla")!=-1) {
readFileFirefox(fileBrowser);
} else {
return;
}
}
function readFileFirefox(fileBrowser) {
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
} catch (e) {
return;
}
var fileName=fileBrowser.value;
alert(fileName);
}
</script>
</head>
<body>
<form name="form1">
Browse to select a file
<input type="file" name="fileBrowser" size="125" onchange="readFile(this)" />
</form>
</body>
</html>
IE中那个方法我给删掉了。在IE中直接获取就行了。希望能帮助大家。
分享到:
相关推荐
#### 解决方案 为了解决这一问题,我们需要对服务器端的响应类型做一些调整。具体来说,可以通过设置HTTP响应的`Content-Type`为"text/html"来规避这个问题。以下是一段示例代码: ```java public String execute...
标题所提到的“javascript 火狐(firefox)不显示本地图片问题”是由于Firefox浏览器对本地文件路径的处理方式与Chrome、Safari或IE等其他浏览器有所不同。在Firefox中,直接使用JavaScript设置`<img>`标签的`src`属性...
4. **升级浏览器**:鼓励用户升级到更现代的浏览器,如Chrome、Firefox或Edge,它们提供了更好的API和安全机制,不再返回虚假路径。 5. **使用Flash或ActiveX控件**:如果必须在IE8上获取真实路径,可以考虑使用...
- 上述方法主要适用于旧版IE浏览器,现代浏览器(如Chrome、Firefox等)出于安全考虑,通常不允许此类操作。 - 使用ActiveX Objects和注册表读取可能会导致安全隐患,因此在生产环境中应谨慎使用。 - 对于现代Web...
通过获取到File控件的DOM元素,然后重新赋值其outerHTML属性,可以实现清空File控件的路径值。但这种方法只在Internet Explorer浏览器中有效,不适用于其他浏览器。 第三种方法是为了兼容Firefox浏览器而考虑的。在...
首先,IE6、IE7和IE8是微软Internet Explorer的早期版本,它们对于现代Web标准的支持非常有限,而火狐(Firefox)作为一款开源浏览器,虽然对新特性支持较好,但在旧版本中也可能存在一些差异。图片上传预览功能允许...
本文将深入探讨这个问题的原因,并提供解决方案。 首先,`getAsDataURL()`是`FileReader`接口的一个方法,它允许读取文件(或Blob对象)的内容并将其转换为一个`data:` URL,这个URL可以直接插入到`<img>`标签的`...
5. **解决方案**: - 使用绝对URL而不是相对URL,以减少路径解析问题。 - 使用服务器托管资源,避免直接引用本地文件路径。 - 利用现代JavaScript库或框架(如jQuery、React等)提供的API来处理路径,这些库通常...
1. **纯HTML解决方案:** 虽然HTML5并没有提供直接改变按钮文字的语言属性,但我们可以通过设置`<input>`元素的`title`属性来改变鼠标悬停时显示的提示文字。例如: ```html <input type="file" title="Choose a ...
2. **Firefox及其他现代浏览器的解决方案:FileReader API** - 使用HTML5的`<input type="file">`元素,添加`change`事件监听器。当用户选择文件后,通过`event.target.files[0]`获取File对象,然后使用`FileReader...
本文将深入探讨如何为IE(6、7、8)和Firefox编写兼容的打开、关闭窗口的JavaScript脚本,以帮助开发者解决跨浏览器的兼容性问题。 首先,我们需要理解IE和Firefox对JavaScript的处理方式有所不同。Internet ...
然而,这种方法的局限性在于它不被所有浏览器支持,尤其是Firefox和Internet Explorer。 **解决方案二:使用`FileReader API`和`DirectoryEntry API`(已废弃)** 另一种方法是结合`FileReader API`和`...
因此,我们需要一种跨浏览器的解决方案。 1. **FileReader API**: - 使用`<input type="file">`创建一个文件选择器,用户可以选择本地的Excel文件。 - 当文件选择后,通过`change`事件获取选中的文件对象。 - ...
本文将深入探讨两个关键问题及其解决方案,这些问题分别是:在Firefox下无法通过CSS改变File上传控件的width,以及在不同浏览器中File上传控件的外观和行为不一致。 首先,让我们关注第一个问题:在Firefox下,File...
但是,IE浏览器,尤其是较低版本,可能不完全支持这些API,因此我们需要找到一种兼容性解决方案。 1. **FileReader接口**:这是实现预览的关键。`FileReader`对象提供了读取文件的方法,如`readAsDataURL()`,它...
对于非IE浏览器,如Firefox、Chrome、Safari、360等,它们不支持ActiveXObject。我们可以使用Blob对象和URL.createObjectURL方法创建一个临时的文件URL,然后创建一个`<a>`标签指向这个URL,模拟点击下载。同时,...
由于IE不允许直接清空,一个可行的解决方案是复制含有文件域的input元素,并移除原始元素。在这个过程中,新复制的元素不会包含任何原始的值或文件数据,因此达到了清空文件域的目的。 在其他浏览器,如Firefox中,...
首先,我们可以看到在Chrome和Firefox这样的现代浏览器中,获取当前脚本文件的绝对路径非常简单。只需使用`document.currentScript`对象,它会返回当前执行的`<script>`元素,然后我们只需要读取`src`属性即可得到...
jQuery File Upload 9.9.2是一款优秀的JavaScript插件,它为开发者提供了高效、易用且功能丰富的文件上传解决方案。这款插件以其高度的兼容性、多文件选择与拖放上传的特性,以及用户友好的预览和进度反馈机制,深受...
jQuery File Upload,顾名思义,是基于jQuery的一个文件上传解决方案。它支持多文件选择、进度条显示、预览、取消上传等高级功能,同时也兼容各种现代浏览器,包括Chrome、Firefox、Safari、Opera和IE9及以上版本。...