`
yun_hua_yu
  • 浏览: 15689 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

firefox中文件上传控件不能获取全路径

阅读更多

最近做项目碰到一问题就是在ie中文件上传控件能获取到文件全路径 ,而在firefox中却只能得到文件名的问题,以前没碰到过,网上查了下,说是firefox的高版本中(3.0以上)考虑到安全问题,并且说是在ie8上也一样。于是网上找来一相应的解决办法,注:以下代码完全是为了记录下相应的解决办法所做的学习笔记

 

		getFilePath: function (fileBrowser) { //fileBrowser 为一个file对象 
		        if (navigator.userAgent.indexOf("MSIE") != -1){fileBrowser.select(); return document.selection.createRange().text;  }
		        else if (navigator.userAgent.indexOf("Firefox") != -1 || navigator.userAgent.indexOf("Mozilla") != -1) return this.getFilePathWithFF(fileBrowser);  
		        else alert("Not IE or Firefox (userAgent=" + navigator.userAgent + ")");  
		    },  
		    getFilePathWithFF: function (fileBrowser) {  
		        try {  
		            netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");  
		        } catch(e) {  
		            alert('由于浏览器安全问题 请按照以下设置 [1] 地址栏输入 "about:config" ; [2] 右键 新建 -> 布尔值 ; [3] 输入 "signed.applets.codebase_principal_support" (忽略引号).');  
		            return;  
		        }  
		        var fileName = fileBrowser.val();  
		        var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);  
		        try {  
		            // Back slashes for windows  
		            file.initWithPath(fileName.replace(/\//g, "\\\\"));  
		        } catch(e) {  
		            if (e.result != Components.results.NS_ERROR_FILE_UNRECOGNIZED_PATH) throw e;  
		            alert("File '" + fileName + "' cannot be loaded: relative paths are not allowed. Please provide an absolute path to this file.");  
		            return;  
		        }  
		      
		        return file.path;  
		    }
设置好后:第一次运行 会弹出由于浏览器安全问题 请按照以下设置 [1] 地址栏输入 "about:config" ; [2] 右键 新建 -> 布尔值 ; [3] 输入 "signed.applets.codebase_principal_support" (忽略引号).'提示
根据提示,修改好firefox的设置后,再运行,会弹出一个对话框,点击是就行了,这时你获得的上传路径即为全路径了。

 

分享到:
评论

相关推荐

    IE8上传文件时javascript取文件的真实路径的问题(\"C:\\fakepath\\xxxxx )

    标题 "IE8上传文件时javascript取文件的真实路径的问题(\"C:\\fakepath\\xxxxx )" 描述了一个在使用Internet Explorer 8 (IE8) 浏览器进行文件上传时遇到的技术挑战。在这个问题中,JavaScript无法获取到文件的实际...

    关于火狐3和ie无法浏览文件全路径问题

    虽然给定的部分内容代码未能完整展示,但从已有的代码片段中可以看出,作者试图通过检测浏览器类型(IE或Firefox),并根据不同类型的浏览器采用不同的方法来获取本地文件的路径。这种方法的核心在于使用浏览器特有...

    百度多文件上传组件webuploader示例for java

    该组件支持多种浏览器环境,包括IE6+、Firefox、Chrome、Safari等,能够很好地兼容现代和老旧的浏览器。 **1. WebUploader组件特性** - **多文件选择**:WebUploader支持多选文件,用户可以一次性选择多个文件进行...

    JS获取input file绝对路径的方法(推荐)

    在进行网页开发过程中,尤其是涉及到文件上传功能时,获取用户选择的文件的路径是一个常见需求。传统的HTML中,`<input type="file">` 元素可以用来让用户选择文件,但是出于安全考虑,浏览器出于安全考虑,不允许...

    asp.net 实现大文件上传

    在ASP.NET开发中,大文件上传是一个常见的需求,但默认情况下,ASP.NET对单个文件上传的大小有所限制。为了处理大文件上传,开发者通常会采用第三方控件或库,如NeatUpload。NeatUpload是一个高效且可靠的解决方案,...

    aspupload组件上传实例

    ASPUpload组件是一款强大的ASP(Active Server Pages)上传组件,它允许用户通过Web页面将文件上传到服务器。这个组件被广泛应用于各种网站开发中,尤其在需要处理用户上传文件的场景下,如图片分享、文档共享、文件...

    WLONG3D全功能无组件文件上传系统wlup v3.4.0504

    "WLONG3D全功能无组件文件上传系统wlup v3.4.0504" 是一款专为网站设计的高效、安全的文件上传解决方案。该系统的核心特点是无需额外安装任何组件,用户可以直接在浏览器环境下进行文件上传操作,极大地简化了上传...

    文件上传下载【SmartUpload】

    SmartUpload是一款功能强大的Java文件上传组件,它在Web开发中被广泛应用,特别是在处理大文件上传、多文件上传以及文件管理方面表现出色。本教程将深入探讨SmartUpload的使用方法和核心特性。 首先,SmartUpload的...

    JS获取文件大小方法小结

    然而,这种方法并不普遍适用,因为它在IE7、IE8、Firefox以及Chrome等现代浏览器中可能无法正常工作。以下是这种方法的示例: ```javascript function getFileSize(filePath) { var image = new Image(); image....

    jsp 视频音频图片文本文件等各种文件的上传源码(最新技术)

    描述中提到的"HttpUploader5ChrUtf8MySQL"可能是一个具体的文件上传组件或者库,它支持UTF-8编码和MySQL数据库的集成,这在处理中文文件名或存储文件信息时非常有用。 1. **文件上传组件**:在JSP中,我们常常使用...

    Python中selenium实现文件上传所有方法整理总结.pdf

    当文件上传控件是一个`<input type="file">`元素时,处理起来相对简单。Selenium提供了一个方便的`send_keys()`方法,可以直接将文件路径发送到该元素,从而触发文件选择对话框并选择指定的文件。下面是一个代码...

    jspSmartUpload上传下载组件及使用方法

    `jspSmartUpload` 是一个在JSP(Java Server Pages)环境下广泛使用的上传下载组件,它基于Java技术,提供了强大的文件上传和下载功能。本文将深入探讨`jspSmartUpload`组件的工作原理、主要特性以及如何在实际项目...

    jspSmartUpload上传下载全攻略

    4. **错误处理**:jspSmartUpload提供了完善的错误处理机制,当文件上传过程中出现问题时,如文件类型不匹配、大小超过限制等,能够及时反馈给用户。 5. **自定义文件名**:允许用户在上传前重命名文件,或者在...

    如何使用JS获取IE上传文件路径(IE7,8)

    对于非IE浏览器,如Firefox,文件路径不再可访问,而是提供了`FileList`对象,可以从中获取文件大小。 ```javascript if (agent.indexOf("Firefox") >= 1) { // Firefox的相关处理 // ... } ``` 在Firefox的处理...

    上传文件动态dll c++

    在IE和旧版Firefox中,可以使用ActiveX技术,而在现代浏览器中,可以将C++编译成WASM模块,然后通过Web Worker来调用上传函数,这样可以避免阻塞用户界面。 总的来说,"上传文件动态dll c++"项目涉及以下知识点: 1...

    解决ActiveX控件没有在此计算机上注册的问题

    ActiveX控件是基于COM(Component Object Model)组件模型的,这些控件可以在Internet Explorer浏览器中运行,提供诸如多媒体播放、文件上传下载等功能。然而,有时用户可能会遇到“ActiveX控件没有在此计算机上注册...

    Java Web程序设计-1期 项目库_单元案例_文件上传下载及发送邮件教学案例.doc

    ### Java Web程序设计-1期 项目库_单元案例_文件上传下载及发送邮件教学案例 ...通过以上案例的学习,学生不仅能够掌握文件上传的基本流程,还能了解文件下载和邮件发送的实现方法,这对于实际项目开发具有重要的意义。

    jspsmartupload.rar

    这个组件具有高度的可定制性和灵活性,支持多文件上传,兼容各种浏览器,包括IE、Firefox、Chrome等,且能处理大文件上传,避免了传统方式中可能出现的内存溢出问题。 首先,我们来看一下JSPSmartUpload的上传流程...

    DotNetTextBox所见即所得编辑器控件 v3.3.1

    <br>2007/6/18 Version 3.1.1 beta <br>Updates: 1) 修正编辑器不支持Opera浏览器的BUG,现在已经能完美支持IE5+、Opera、FireFox等主流浏览器。 2) 修正控件在设计模式时出现找不到config配置文件但...

    fckeditor精简版(php),带本地上传功能。

    2. **FCKeditor的特点**:FCKeditor支持多种浏览器,包括Internet Explorer、Firefox、Chrome和Safari等。它提供了丰富的API,让开发者可以自定义编辑器的行为和外观,以及集成到现有的应用程序中。此外,其本地上传...

Global site tag (gtag.js) - Google Analytics