js获取input file完整路径的方法
function getPath()
{
//判断浏览器
var Sys = {};
var obj = document.getElementById("headImg");
var viewer = document.getElementById("viewImg");
var ua = navigator.userAgent.toLowerCase();
var s;
(s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] :
(s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] :
(s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] :
(s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] :
(s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0;
var path="";
if(Sys.ie<="6.0"){
//ie5.5,ie6.0
viewer.src = obj.value;
}else if(Sys.ie>="7.0"){
//ie7,ie8
obj.select();
//加上这一句防止报告安全问题
obj.blur();
viewer.src = document.selection.createRange().text;
}else if(Sys.firefox){
if (obj.files) {
var accept = ["image/png","image/jpeg","image/jpg","image/gif"];
if (accept.indexOf(obj.files[0].type) > -1) {
var reader = new FileReader();
reader.readAsDataURL(obj.files[0]);
//延迟一会等待文件读取完毕
var t = setTimeout(function(){
viewer.src = reader.result;
clearTimeout(t);
},100)
}
}
else
{
viewer.src = obj.value;
}
}else if(Sys.chrome){
viewer.src = obj.value;
}
}
<form>
<input type="file" id="headImg" />
<input id="btnOk" type="button" value="ok" onclick="getPath()"/>
<img src="http://blog.163.com/zhchf_52@yeah/blog/" alt="view" id="viewImg" />
</form>
由于IE9不能实时的显示图片,所以采用滤镜的方法:
<style type="text/css">
#viewImg2{ /* 该对象用于在IE下显示预览图片 */
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale);
width:150px;
height:150px;
display:none;
overflow: hidden;
}
#viewImg{ /* 该对象只用来在IE下获得图片的原始尺寸,无其它用途 */
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image);
width:150px;
height:150px;
display:none;
overflow:hidden;
}
</style>
<form id="uploadForm" action="" method="post" enctype="multipart/form-data">
<input type="file" id="headImg" onchange="view()" name="headImg"/>
<input type="submit" value="保存" id="btnSave" disabled="disabled" />
<p class="lineH30 color6">建议使用正方形的图片,支持JPG、GIF、PNG格式,100K以内。</p>
<div id="viewImg2"></div>
<img src="http://blog.163.com/zhchf_52@yeah/blog/" alt="" id="viewImg"/>
<script type="text/javascript">
//file文件控件,viewer 图像查看,accept支持的文件格式的mimetype数组
function viewImage(file, viewer, viewer2, btn, accept) {
//判断浏览器
var Sys = {};
if (file && viewer) {
if (!viewer2) {
viewer2 = viewer;
}
if (!accept || accept.length == 0) {
accept = ["image/png", "image/jpeg", "image/jpg", "image/gif", "image/bmp"];
}
var ua = navigator.userAgent.toLowerCase();
var s;
(s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] :
(s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] :
(s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] :
(s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] :
(s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0;
var path = "";
if (Sys.ie) {
viewer.style.display = "none";
if (Sys.ie <= "6.0") {
//ie5.5,ie6.0
path = file.value;
}
else if (Sys.ie >= "7.0") {
//ie7,ie8
file.select();
//加上这一句防止报告安全问题
file.blur();
path = document.selection.createRange().text;
}
v = isValidImage(path, accept);
if (v) {
viewer2.style.display = "block";
if (viewer2.filters) {
viewer2.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = path;
}
else {
viewer2.src = path;
}
}
}
else if (Sys.firefox) {
viewer2.style.display = "none";
viewer.style.display = "block";
if (file.files && file.files.length > 0) {
if (accept.indexOf(file.files[0].type) > -1) {
var reader = new FileReader();
reader.readAsDataURL(file.files[0]);
//延迟一会等待文件读取完毕
var t = setTimeout(function () {
viewer.src = reader.result;
clearTimeout(t);
}, 100);
v = true;
}
}
else {
path = file.value;
v = isValidImage(path, accept);
if (v) {
viewer.src = file.value;
}
}
}
else {
viewer2.style.display = "none";
viewer.style.display = "block";
path = file.value;
v = isValidImage(path, accept);
if (v) {
viewer.src = file.value;
}
}
if (v) {
if (btn) {
$("#" + btn).removeAttr("disabled");
}
}
else {
viewer.src="http://blog.163.com/zhchf_52@yeah/blog/";
$("#btnSave").attr("disabled", "disabled");
}
}
}
//是否为有效的图片格式
function isValidImage(path, accept) {
var v = false;
if (path
&& path.length > 0
&& path.indexOf(".") > 0
&& accept
&& accept.length > 0) {
var idx = path.lastIndexOf(".") + 1;
if (path.length > idx) {
var ext = path.substr(idx).toLowerCase();
for (var i = 0; i < accept.length; i++) {
if (accept[i].indexOf("/" + ext) > 0) {
v = true;
break;
}
}
}
}
return v;
}
function autoSizePreview(objPre, originalWidth, originalHeight) {
var zoomParam = clacImgZoomParam(150, 150, originalWidth, originalHeight);
objPre.style.width = zoomParam.width + 'px';
objPre.style.height = zoomParam.height + 'px';
objPre.style.marginTop = zoomParam.top + 'px';
objPre.style.marginLeft = zoomParam.left + 'px';
}
function clacImgZoomParam(maxWidth, maxHeight, width, height) {
var param = { width: width, height: height, top: 0, left: 0 };
if (width > maxWidth || height > maxHeight) {
rateWidth = width / maxWidth;
rateHeight = height / maxHeight;
if (rateWidth > rateHeight) {
param.width = maxWidth;
param.height = height / rateWidth;
} else {
param.width = width / rateHeight;
param.height = maxHeight;
}
}
param.left = (maxWidth - param.width) / 2;
param.top = (maxHeight - param.height) / 2;
return param;
}
function view() {
viewImage(document.getElementById("headImg"),
document.getElementById("viewImg"),
document.getElementById("viewImg2"),
"btnSave",
accept);
}
</script>
</form>
js获取input file完整路径的方法的更多相关文章
- js 获取input file路径改变图像地址
html代码 <img id="newImage" alt="100x100" src="__PUBLIC__/img/1.jpg" ...
- js获取input file路径改变图像地址
版权声明:好歹是我写的或者总结的或者抄的,总待给我个名份吧~ https://blog.csdn.net/sangjinchao/article/details/52250318 html代码 < ...
- js获取 input file 图片缩略图
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- js 获取 input file 文件 附给 image src
var a=document.querySelector('input[type=file]'); a.onchange = function (e) { //var reader = new Fil ...
- js获取input file文件二进制码
<html> <body> <img id="image"src=""/> <br/> <input ty ...
- js 获取input type="file" 选择的文件大小、文件名称、上次修改时间、类型等信息
文件名的传递 ---全路径获取 $('#file').change(function(){ $('#em').text($('#file').val()); }); 文件名的传递 ---只获取文件名 ...
- js清空input file的值
原文:js清空input file的值 在做选择本地图片上传的功能时遇到一个问题,第一次点file按钮选择图片完成会触发onchange事件,获取文件后动态在界面上创建img标签展示,但把创建的img ...
- javascript中外部js文件取得自身完整路径得办法
原文:javascript中外部js文件取得自身完整路径得办法 有时候我们需要引入一个外部js文件,这个js文件又需要用到自己的路径或者是所在的目录,别问怎么又这么变态的需求,开发做久了各种奇葩需求也 ...
- JS获取fileupload文件全路径
来自:http://hi.baidu.com/libos88/item/c61ab8bae472afe34ec7fdfb 最近在写个小网站,用到了fileupload控件来上传文件.因为程序的某些需要 ...
随机推荐
- 【 枚举 Enum 】循环 名称与值
foreach (WeekDay c in (WeekDay [])Enum.GetValues(typeof(WeekDay ))) {Console.Write(String.Format(& ...
- css系列教程--color direction line-height letter-spacing
css标签:colorcolor:用法color:指定文本的颜色color:red/#fff/unicode; direction:用法 direction:定义文本的方向.dirction:ltr/ ...
- WebView的基本使用
---恢复内容开始--- 一.实例化WebView 通过xml实例化 xml <WebView android:id="@+id/webview" android:layou ...
- Visual C++ 64bit应用程序项目设置
Visual Studio 2005 This topic describes how to set up C++ applications to target 64-bit platforms us ...
- WireShark抓包软件的使用
在大学的时候学习的计算机网络的具体的知识,也使用过wireshark去抓取一些网络的封包用来分析,但是都没能系统的写一篇博客,今天总结一下吧. wireshark介绍 wireshark的官方下载网站 ...
- ASP.Net引用类库出现问题 二
一:引用mysql.data.dll出现,问题? error: Package MySql.Data (.NETCoreApp,Version=v1.). Package MySql.Data sup ...
- scrollTop,offset().top
1.scrollTop是指滚动条滚动的距离 如果没有出现滚动条,则距离为0 css: <style type="text/css"> *{ margin: 0; pad ...
- iOS在Xcode6中添加空模板
1.在Xcode6.0以下版本找到空模板(路径与下方相同). 2.将空模板拖入路径:Macintosh HD ▸ 应用程序 ▸ Xcode(版本号).app ▸ Contents ▸ Develo ...
- Oracle EBS-SQL (PO-7):检查异常-非批准的供应商设置供货比例.sql
select distinct msr.sourcing_rule_name 名称,msi.description 说明,msi ...
- js 概念(构造函数)
所有关于类.对象的语言里面,都有构造函数的概念,其实构造函数,就是在创建这个对象或者类的实例时候自动调用的函数,一般的语言都是new创建,那么new的参数就传递给构造函数.