js获取file控件的完整路径(上传图片预览)
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <!DOCTYPE html >
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>Insert title here</title>
- </head>
- <body>
- <script type="text/javascript">
- function fun()
- {
- alert();
- }
- function bao(str)
- {
- //alert(str);
- //int n=Integer.parseInt(str);
- var img="images/tx/";
- img+=str;
- img+=".gif";
- img = "images/map.png";
- //alert(img);
- // 取得img节点
- var imgNode=document.getElementById("picture");
- // 修改img节点的src属性
- imgNode.setAttribute("src",img);
- //oDiv.innerHTML="<img src=images/tx/2.gif width='80' height='80' border='1' />";
- //不能改变图片,src不能使变量!
- }
- function readFileFirefox(fileBrowser) {
- try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
- }
- catch (e) {
- alert('无法访问本地文件,由于浏览器安全设置。为了克服这一点,请按照下列步骤操作:(1)在地址栏输入"about:config";(2) 右键点击并选择 New->Boolean; (3) 输入"signed.applets.codebase_principal_support" (不含引号)作为一个新的首选项的名称;(4) 点击OK并试着重新加载文件');
- return;
- }
- var fileName=fileBrowser.value; //这一步就能得到客户端完整路径。下面的是否判断的太复杂,还有下面得到ie的也很复杂。
- 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;
- }
- if ( file.exists() == false ) {
- alert("File '" + fileName + "' not found.");
- return;
- }
- return file.path;
- }
- //根据不同浏览器获取路径
- function getpic(){
- //判断浏览器
- var Sys = {};
- var ua = navigator.userAgent.toLowerCase();
- var s;
- (s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[] :
- (s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[] :
- (s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[] :
- (s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[] :
- (s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[] : ;
- var file_url="";
- if(Sys.ie<="6.0"){
- //ie5.5,ie6.0
- file_url = document.getElementById("file").value;
- }else if(Sys.ie>="7.0"){
- //ie7,ie8
- var file = document.getElementById("file");
- file.select();
- file_url = document.selection.createRange().text;
- }else if(Sys.firefox){
- //fx
- //file_url = document.getElementById("file").files[0].getAsDataURL();//获取的路径为FF识别的加密字符串
- file_url = readFileFirefox(document.getElementById("file"));
- }
- alert(file_url);
- img = file_url;
- //alert(img);
- // 取得img节点
- var imgNode=document.getElementById("picture");
- // 修改img节点的src属性
- imgNode.setAttribute("src",img);
- }
- </script>
- <input type ="file" id = "file" onchange="getpic()" />
- <img id="picture"/>
- </body>
- </html>
- <script type="text/javascript">
- //FX获取文件路径方法
- function readFileFirefox(fileBrowser) {
- try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
- }
- catch (e) {
- alert('无法访问本地文件,由于浏览器安全设置。为了克服这一点,请按照下列步骤操作:(1)在地址栏输入"about:config";(2) 右键点击并选择 New->Boolean; (3) 输入"signed.applets.codebase_principal_support" (不含引号)作为一个新的首选项的名称;(4) 点击OK并试着重新加载文件');
- return;
- }
- var fileName=fileBrowser.value; //这一步就能得到客户端完整路径。下面的是否判断的太复杂,还有下面得到ie的也很复杂。
- 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;
- }
- if ( file.exists() == false ) {
- alert("File '" + fileName + "' not found.");
- return;
- }
- return file.path;
- }
- //根据不同浏览器获取路径
- function getvl(){
- //判断浏览器
- var Sys = {};
- var ua = navigator.userAgent.toLowerCase();
- var s;
- (s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[] :
- (s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[] :
- (s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[] :
- (s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[] :
- (s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[] : ;
- var file_url="";
- if(Sys.ie<="6.0"){
- //ie5.5,ie6.0
- file_url = document.getElementById("file").value;
- }else if(Sys.ie>="7.0"){
- //ie7,ie8
- var file = document.getElementById("file");
- file.select();
- file_url = document.selection.createRange().text;
- }else if(Sys.firefox){
- //fx
- //file_url = document.getElementById("file").files[0].getAsDataURL();//获取的路径为FF识别的加密字符串
- file_url = readFileFirefox(document.getElementById("file"));
- }
- //alert(file_url);
- document.getElementById("text").innerHTML="获取文件域完整路径为:"+file_url;
- }
- </script>
- <h1>JS获取文件域完整路径的方法,兼容不同浏览器</h1>
- <div id="text" style="color:#f00;"></div>
- <input type="file" id="file" />
- <input name="" type="button" value="获取" onClick="getvl();">
js获取file控件的完整路径(上传图片预览)的更多相关文章
- html file控件选择文件后立即预览 js实现
//上传图片后立即预览 file对象,图片容器id function showImg(fileObj,imgId) { var file=fileObj.files[0]; var r = new F ...
- IE9获取file控件的本地文件路径
最近发现,在IE9下,公司网站的本地图片预览都无法正常显示,经过测试发现,原因在于IE9下无法获取file控件的文件路径. 以前的代码如下: var strPic = fileImg.value; i ...
- 使用js获取checkbox控件在GridView中的第几行
这次的知识点是如何使用js获取checkbox控件所在的是第几行!!! 我们可以使用 JavaScript 中自带的 rowIndex 和 cellIndex 来获取行和列的键值 (从0开始) 这两个 ...
- 怎么清除file控件的文件路径
还记得上次做一个文件上传,后来测试告诉我说,如果我要是不选择文件了呢?该怎么办?我说:简单啊,做一个取消按钮不就完事了吗!然后我就想一个file空间做一个取消是多么简单的事,用js处理可是想怎么样就怎 ...
- JS获取用户控件中的子控件Id
用户控件 <asp:HiddenField ID="hfGradeId" runat="server" /> <asp:HiddenField ...
- JS 获取Button控件的提交类型
<script type="text/javascript"> <!--获取button控件的类型---> function isAuditOrCancel ...
- JS获取服务器端控件ID
很多时候我们需要在JS中对服务器端控件进行一些简单处理,但是这个时候没有必要回发到服务器,让服务器去处理,这个时候就又要用到JS了 那么怎么去获取这个服务器端控件呢?我们知道服务器最终返回到用户界面的 ...
- JS 获取FileUpload1控件地址
function openList() { //判断浏览器类型 var isIE = (document.all) ? true : false; ); ); ); var path = " ...
- Asp.Net 获取FileUpload控件的文件路径、文件名、扩展名
string fileNameNo = Path.GetFileName(FileUploadImg.PostedFile.FileName); //获取文件名和扩展名string Directory ...
随机推荐
- ansible笔记(6):常用模块之命令类模块
ansible笔记():常用模块之命令类模块 command模块 command模块可以帮助我们在远程主机上执行命令 注意:使用command模块在远程主机中执行命令时,不会经过远程主机的shell处 ...
- Kali Linux2018 上安装open-vm-tools实现虚拟机交互
最新的kali linux2018已经不再支持原有的vmwaretools,即使安装了也不能实现主机与客户机之间的交互(比如从主机复制文件到客户机).安装open-vm-tools替代vm tools ...
- 前端 ----关于DOM的操作的相关实例
关于DOM操作的相关案例 1.模态框案例 需求: 打开网页时有一个普通的按钮,点击当前按钮显示一个背景图,中心并弹出一个弹出框,点击X的时候会关闭当前的模态框 代码如下: <!DOCTYPE ...
- java操作redis之按照关键字删除缓存数据
思路: 1.链接redis数据库,连接成功2.js.del(key),按照指定的key进行删除,封装删除方法3.js.keys("*"),获取所有键keys的集合,对set集合进行 ...
- HSSFWorkbook操作excel读写
//exlel读操作 MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; Ite ...
- C# 如何获取自定义的config中节点的值,并修改节点的值
现定义一个方法 DIYConfigHelper.cs using System; using System.Xml; using System.Configuration; using System. ...
- Python装饰器执行顺序详解
探究多个装饰器执行顺序 装饰器是Python用于封装函数或代码的工具,网上可以搜到很多文章可以学习,我在这里要讨论的是多个装饰器执行顺序的一个迷思. 疑问 大部分涉及多个装饰器装饰的函数调用顺序时都会 ...
- Codeforces 1132G Greedy Subsequences [线段树]
洛谷 Codeforces 看到题解那么少就来发一篇吧-- 思路 看完题目一脸懵逼,感觉无从下手. 莫名其妙地想到笛卡尔树,但笛卡尔树好像并没有太大作用. 考虑把笛卡尔树改一下:每个点的父亲设为它的右 ...
- 密码正确 mysql无法登陆 red7.3 上安装mysql5.6后登录报错ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passswd :yes)
集群需要mysql存储元数据,就在前几天还运行好好的,突然就进不去了......还是太菜,遇到的bug少. 引起这种故障的原因有很多......第一个坑比较多,大部分用户也就用第一个就可以解决问题,我 ...
- 使用open live writer客户端写博客
注:Windows Live Writer 已经停止更新,建议安装 Open Live Writer,下载地址: http://openlivewriter.org/ 使用open live writ ...