最近在项目时,需要获取用户的上传文件的路径,便写了一个demo:

<body>
<input type="file" name="" value=""> <script>
var input = document.getElementsByTagName("input")[];
console.log(input);
input.onchange = function () {
var that = this;
console.log(that.files[]);
var src = window.URL.createObjectURL(that.files[])
console.log(src);
var img = document.createElement("img");
img.style.width = "200px";
img.src = src;
document.body.appendChild(img);
}
</script>

效果及结果如下:

通过input[type=file]上传图片获取图片的尺寸:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<form id="form">
<!-- .给input标签添加一个onchange事件:一旦选择文件发生变化则会触发 目的:获取选择图片的原始数据 -->
<input type="file" id="exampleInputFile" name="icon" onchange=uploadImg(this)>
<!-- .用一个img标签来接收文件数据 目的:()先接收文件数据 ()通过offsetHeight属性获取宽高 -->
<img src="" alt="" id="">
<p>请上传图片.</p>
</form>
</body>
<script> //选择图片,马上预览 function uploadImg(obj) { //1.读取文件详细信息 var file = obj.files[]; console.log(obj); console.log(file); //2.使用FileReader读取文件信息 var reader = new FileReader(); //4.监听读取文件过程方法,异步过程 reader.onloadstart = function (e) { console.log("开始读取...."); } reader.onprogress = function (e) { console.log("正在读取中...."); } reader.onabort = function (e) { console.log("中断读取...."); } reader.onerror = function (e) { console.log("读取异常...."); } reader.onload = function (e) { console.log("成功读取...."); console.log(this.reault); //或者 img.src = this.result; //e.target == this var img = document.getElementById(""); //将解析的base64字符串赋值给img标签 img.src = e.target.result; //5.这里需要异步获取,避免线程延迟 setTimeout(function(){ window.alert('高度' + img.offsetHeight + '宽度' + img.offsetWidth); },);
}
//3.开始读取
reader.readAsDataURL(file)
}
</script>
</html>

input[type='file']获取上传文件路径案例的更多相关文章

  1. input type file onchange上传文件的过程中,遇到同一个文件二次上传无效的问题。

    不要采用删除当前input[type=file]这个节点,然后再重新创建dom这种方案,这样是不合理的.解释如下:input[type=file]使用的是onchange去做,onchange监听的为 ...

  2. input type file onchange上传文件的过程中,同一个文件二次上传无效的问题。

    不要采用删除当前input[type=file]这个节点,然后再重新创建dom这种方案,这样是不合理的.解释如下:input[type=file]使用的是onchange去做,onchange监听的为 ...

  3. input type='file'限制上传文件类型

    前端与后台数据进行对接时,就避免不了要使用ajax进行http请求,常用的请求就两个post与get:然而常见的post请求的需求是文件上传,可能我一说到文件上传大家都觉得so  easy啊,没什么嘛 ...

  4. input type=file 图片上传相关

    HTML: <input type="file" name="address"   onchange='PreviewImage(this)' value ...

  5. JS获取上传文件的绝对路径,兼容IE和FF

    <input type="file" id="fileBrowser" name="fileBrowser" size="5 ...

  6. ie下获取上传文件全路径

    ie下获取上传文件全路径,3.5之后的火狐是没法获取上传文件全路径的 /*获取上传文件路径*/ function getFilePath(obj) { var form = $(this).paren ...

  7. Atitit.js获取上传文件全路径

    Atitit.js获取上传文件全路径 1. 默认的value只能获取文件名..安全原因.. 1 2. Firefox浏览器的读取 1 3. Html5 的file api 2 4. 解决方法::使用a ...

  8. js获取上传文件内容(未完待续)

    js 获取上传文件的字节数及内容 <div> 上传文件 : <input type="file" name = "file" id = &qu ...

  9. PHP使用APC获取上传文件进度

    今天发现使用PHP的APC也能获取上传文件的进度.这篇文章就说下如何做. 安装APC 首先安装APC的方法和其他PHP模块的方法没什么两样,网上能找出好多 phpinfo可以看到APC的默认配置有: ...

随机推荐

  1. mac os x install redis-3.2.9

    下载.解压.重命名并且编译安装Redis~ wget http://download.redis.io/releases/redis-3.2.9.tar.gz ~ tar xzf redis-3.2. ...

  2. (转)基于MVC4+EasyUI的Web开发框架形成之旅--框架总体界面介绍

    http://www.cnblogs.com/wuhuacong/p/3344096.html 在前面介绍了一些关于最新基于MVC4+EasyUI的Web开发框架文章,虽然Web开发框架的相关技术文章 ...

  3. RabbitMQ学习笔记(6)----RabbitMQ 持久化和非持久化

    持久化:将交换机或队列数据保存到磁盘,服务器宕机或重启之后依然存在. 非持久化:将交换机或队列的数据保存到内存中,服务器宕机或重启之后数据将不存在. 在RabbitMQ中也提供了持久化和非持久化方式. ...

  4. 遍历及过滤 first(), last() 和 eq() filter() 和 not()

    三个最基本的过滤方法是:first(), last() 和 eq(),它们允许您基于其在一组元素中的位置来选择一个特定的元素.其他过滤方法,比如 filter() 和 not() 允许您选取匹配或不匹 ...

  5. spring cloud(三) config

    spring cloud 配置中心 config 搭建过程 1.搭建config-server 服务端 1.1. 新建boot工程 pom引入依赖 <!-- config配置中心 --> ...

  6. 企业级任务调度框架Quartz(8) 线程在Quartz里的意义(2)

    前序:      做为企业里的任务调度框架,出现同一时间点同时运行两个任务,或者两个任务因为开始的执行时间和执行时间的长短,很有可能出现任务并发执行的情况:因为Quartz的实现是采用java编程,那 ...

  7. java中后端拼接字符串返回前台页面换行显示

    后端拼接时用:"\n"分割,比如: String str = "白日依山尽,\n" + "黄河入海流:"; 返回前台页面时,放入 <p ...

  8. [NOI2005]维护数列_Splay

    真的毫无算法可言,就是比谁的码力强罢了... Code: #include<stack> #include<cstdio> #include<algorithm> ...

  9. JavaScript正则表达式总结

    同学们,今天给大家带来一篇正则表达式的总结,老规矩,先说下我们为什么要用正则?正则要用在什么地方? (个人理解的,大神轻喷) 正则很多时候要用于字符串操作,比如我们要把一个字符串里面的空格删除啊,替换 ...

  10. nmcli connection modify eth1 ipv4.addr "192.168.31.23" ipv4.method manual

    nmcli connection modify eth1 ipv4.addr "192.168.31.23/24" ipv4.method manual 修改IP地址