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

上传图片立即显示缩略图

    博客分类:
  • jsp
阅读更多
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">    
<html xmlns="http://www.w3.org/1999/xhtml">    
<head>    
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    
<title>Firefox3,IE6,IE7,IE8上传图片预览</title>    
<style type="text/css">    
#preview_wrapper{     
    display:inline-block;     
    width:300px;     
    height:300px;     
    background-color:#CCC;     
}     
#preview_fake{ /* 该对象用户在IE下显示预览图片 */     
    filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale);     
}     
#preview_size_fake{ /* 该对象只用来在IE下获得图片的原始尺寸,无其它用途 */     
    filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image);       
    visibility:hidden;     
}     
#preview{ /* 该对象用户在FF下显示预览图片 */     
    width:300px;     
    height:300px;     
}     
</style>    
    
<script type="text/javascript">    
function onUploadImgChange(sender){     
    if( !sender.value.match( /.jpg|.gif|.png|.bmp/i ) ){     
        alert('图片格式无效!');     
        return false;     
    }     
         
    var objPreview = document.getElementById( 'preview' );     
    var objPreviewFake = document.getElementById( 'preview_fake' );     
    var objPreviewSizeFake = document.getElementById( 'preview_size_fake' );     
         
    if( sender.files &&  sender.files[0] ){     
        objPreview.style.display = 'block';     
        objPreview.style.width = 'auto';     
        objPreview.style.height = 'auto';     
             
        // Firefox 因安全性问题已无法直接通过 input[file].value 获取完整的文件路径     
        objPreview.src = sender.files[0].getAsDataURL();         
    }else if( objPreviewFake.filters ){      
        // IE7,IE8 在设置本地图片地址为 img.src 时出现莫名其妙的后果     
        //(相同环境有时能显示,有时不显示),因此只能用滤镜来解决     
             
        // IE7, IE8因安全性问题已无法直接通过 input[file].value 获取完整的文件路径     
        sender.select();     
        var imgSrc = document.selection.createRange().text;     
             
        objPreviewFake.filters.item(     
            'DXImageTransform.Microsoft.AlphaImageLoader').src = imgSrc;     
        objPreviewSizeFake.filters.item(     
            'DXImageTransform.Microsoft.AlphaImageLoader').src = imgSrc;     
             
        autoSizePreview( objPreviewFake,      
            objPreviewSizeFake.offsetWidth, objPreviewSizeFake.offsetHeight );     
        objPreview.style.display = 'none';     
    }     
}     
    
function onPreviewLoad(sender){     
    autoSizePreview( sender, sender.offsetWidth, sender.offsetHeight );     
}     
    
function autoSizePreview( objPre, originalWidth, originalHeight ){     
    var zoomParam = clacImgZoomParam( 300, 300, 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;     
}     
</script>    
    
</head>    
    
<body>    
    <div id="preview_wrapper">    
        <div id="preview_fake">    
            <img id="preview" onload="onPreviewLoad(this)"/>    
        </div>    
    </div>    
    <br/>    
    <input id="upload_img" type="file" onchange="onUploadImgChange(this)"/>    
    <br/>    
    <img id="preview_size_fake"/>    
</body>    
</html>    
</body>
也可以参考这个http://dinghaoliang.blog.163.com/blog/static/1265407142010422151311/
分享到:
评论

相关推荐

    asp.net 自定义控件实现无刷新上传图片,立即显示缩略图,保存图片缩略图

    自定义控件实现无刷新上传图片,立即显示缩略图,保存图片缩略图

    jQuery CSS 实现鼠标指向图片,放大显示效果.rar

    jQuery CSS 实现鼠标指向图片,放大显示效果,思路源自淘宝网产品列表...也不需要另外上传缩略图,程序将调用原图片生成缩略图,放大后的图片实际上是原图片的大校觉得这个功能挺实用的,特别推荐给大家,欢迎下载。

    如何用input标签和jquery实现多图片的上传和回显功能

    本文主要记录如何用input标签和jquery实现多图片的上传和回显,不会涉及后端的交互,大概的效果看图   效果图 我们从零来做一个这样的demo 第一步: 我们先完善一下我们的页面,默认的input-file标签非常丑,我们...

    Gallery4U 图片管理系统 v1.25.rar

    5.修正了缩略图选择按原大小显示时为1*1的问题 6.修正添加修改图片集后二级分类索引不正确的问题 7.添加栏目时把栏目英文名称中的空格转为下划线 8.不再以Server.MapPath("..")方法来取得虚拟物理路径,解决了在...

    upyun for emlog 插件(又拍云插件) v3.1.0.zip

    6、填写空间域名(即加速域名)---填写空间名(即服务名称)--填写API密钥(即表单API),完成(即可上传图片了) (1),操作员和操作员密码填写后图片管理才会显示出来,可以删除又拍云上的图片 (2),图片宽度...

    Imagevue 2.8.10.2.zip

    只要通过FTP把Imagevue程序上传到您的服务器空间上就可以立即运行访问,您可以通过FTP或者Imagevue两种方式上传更新您的照片图库,新上传的照片会自动创建缩略图并展示出来。主菜单可以显示您的照片目录层次结构,您...

    小精豆网络相册V3.0网络图片存储系统源码(高仿淘小宝)

    用户轻松体验功能,缩略图浏览,列表浏览,图片批量转移,批量复制,批量删除(商业版),普通删除、批量上传功能,普通删除、批量上传时选择长传命名规则(商业版),图片名称模糊查找(商业版),文件夹管理中:...

    可商用图像查看器 nomacs 3.17.2206 Beta 中文多语版.zip

    您还可以查看在缩略图列表或幻灯片中显示的照片,检查元数据(例如型号,曝光时间,等级,日期),显示或隐藏内置直方图,执行搜索操作以及更改壁纸。 nomacs 使您可以将图像旋转到不同角度,调整大小或裁剪照片,...

    Scratch Image Uploader-crx插件

    语言:English (UK) 使用Scratch项目缩略图可上传要在论坛上使用的图像。...每次您上传图片时,扩展程序都会自动创建一个项目,并将缩略图设置为您的图片,然后立即提供正确的BBCode在论坛上显示该图片。

    dominant-colors-lazy-loading-wordpress-plugin:此插件可让您延迟加载图像,同时以占位符的形式显示每个图像的显色-例如Pinterest或Google Images

    它还使您可以将微小的缩略图用作占位符。 如果您想知道它是如何工作的,请阅读文章,在此我将解释一般概念。 为了确保插件的质量,如果您遇到任何问题,请告诉我。 我会尽快答复并尽快解决! 产品特点 该插件会在...

    ACDSee Pro烈火汉化修正版_X32_X64

    * 鼠标划过图片,不自动显示缩略图弹出 * 取消“标记项目”设置 * 取消数据库备份提醒 * 时钟格式改为 24 小时制 * 覆盖重名文件时自动重命名 * 此版本兼容任何微软 Windows 32 位与 64 位系统(XP 以上)

    小精豆新版

    用户轻松体验功能,缩略图浏览,列表浏览,图片批量转移,批量复制,批量删除(商业版),普通删除、批量上传功能,普通删除、批量上传时选择长传命名规则(商业版),图片名称模糊查找(商业版),文件夹管理中:...

    网趣网上购物系统时尚版V13.0

     四五、支持订单缩略图显示,增加热门搜索,显示用户最关注的搜索信息。  四六、支持数据库在线备份、在线恢复、数据库大小查看,数据下载等!  四七、支持图片水印与文字水印功能,并可设置文字嵌入的5个方位等...

    网趣网上购物系统的部分特点与精华

     四五、支持订单缩略图显示,增加热门搜索,显示用户最关注的搜索信息。  四六、支持数据库在线备份、在线恢复、数据库大小查看,数据下载等!  四七、支持图片水印与文字水印功能,并可设置文字嵌入的5个方位等...

    企业SEO站 v17.2 无组件生成HTML.rar

    31、修复缩略图上传失败问题。增加文章、产品转向功能修正模板CSS显示错误的bug。 32、新增添加完新闻或者自动生成HTML减少操作更自动化。 33、生成xml和txt网站地图SiteMap,包含了网站所有的URL,提交给搜索引擎...

    功能非常全面的一个论坛源码

    - 对于旧版的图片上传附件,提供升级程序,可以产生新的缩略图(支持TIF PSD等图像文件) - 附件允许插入帖子内容排版,未插入的将自动添加 - 允许修改附件内容,以及附件注释. 230. 用户头像上传功能修复,允许...

    动易.NET产品3.5版0428

     ●修复文章首页无法显示缩略图的问题;  ●修复动态模板无法取得参数值的问题;  BizIdea:  ●修复银联网付通在线支付接口功能缺少默认数据的问题;  ●修复优惠券数据较多时出错的问题;  ●修复升级客户...

    网趣网上购物系统时尚版

     四四、支持订单缩略图显示,增加热门搜索,显示用户最关注的搜索信息。  四五、支持数据库在线备份、在线恢复、数据库大小查看,数据下载等!  四六、支持图片水印与文字水印功能,并可设置文字嵌入的5个方位等...

    新华产品展示销售管理系统 6.2.rar

    后台有发布资讯,新闻,发布产品(可以自己上传产品图片,可以缩略显示),可以在线购买,有留言,留言回复,发布单页面等等,公司简介,招聘信息,联系方式等单页面全在后台管理。 新华产品展示销售管理系统 6.2 ...

Global site tag (gtag.js) - Google Analytics