`
cpf1985
  • 浏览: 78303 次
  • 性别: 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/
分享到:
评论

相关推荐

    html5图片上传本地生成缩略图预览

    在图片上传场景中,这使得我们可以在用户选择图片后立即进行处理,例如生成缩略图。 2. **Canvas**:Canvas是HTML5的一个重要组成部分,它是一个可编程的图形区域,可以通过JavaScript来绘制图形。在图片预览和缩略...

    js实现上传图片即刻生成缩略图预览

    "js实现上传图片即刻生成缩略图预览"这个功能就是为了让用户体验更加流畅,允许他们在上传图片的同时立即查看预览效果,而无需等待完整的图片加载。这在处理大尺寸或者高分辨率图片时尤其有用,因为生成的缩略图可以...

    多文件上传,带缩略图

    在IT领域,多文件上传和缩略图生成是常见的功能需求,特别是在Web应用程序中,如社交网络、博客系统和图片分享平台。这个压缩包提供的内容似乎是一个简单的多文件上传示例,具有缩略图预览功能,适用于Java或.NET...

    java上传图片后立即将图片显示出来

    综上所述,"java上传图片后立即将图片显示出来"这一功能的实现涉及到Java的文件上传处理、IFrame技术的运用、前端JavaScript的交互以及服务器端的文件管理和安全控制等多个方面。理解这些关键点对于开发高质量的Web...

    超强的图片上传,加水印,以及生成缩略图

    文件“在ASP_NET中实现图片上传,并按比例生成缩略图.mht”可能提供了详细的ASP.NET实现过程,而“图片上传即时显示缩略图的方法(转).mht”可能讲述了如何在用户上传图片后立即展示缩略图的技术,这可能涉及Ajax异步...

    jquery实现图片预览,缩略图,效果不错

    在网页开发中,图片预览和缩略图功能是非常常见的需求,尤其在用户上传图片或者浏览相册时。jQuery作为一个轻量级的JavaScript库,提供了丰富的API和插件,使得实现这样的功能变得简单易行。本示例中的"jQuery实现...

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

    综上所述,***实现无刷新上传图片并即时显示缩略图的功能,关键在于使用iframe结合服务器端控件以及JavaScript的交互处理。通过以上描述的知识点,开发者可以构建出一个功能完备且用户体验良好的图片上传和预览功能...

    图片上传预览(支持火狐,谷歌,Ie)

    在网页开发中,图片上传预览功能是一项常见且...这个功能不仅能够提供良好的用户体验,也能帮助开发者在用户上传图片前验证其格式和大小,从而提高网站的安全性和效率。在实际项目中,可以根据具体需求进行调整和优化。

    图片上传jquery+flash

    在本案例中,我们关注的是一个使用jQuery和Flash实现的图片上传解决方案,它提供了图片预览(缩略图)、添加水印以及进度条显示的功能。下面我们将详细探讨这些知识点。 首先,jQuery是一个广泛使用的JavaScript库...

    最快捷,最方便的图片上传,管理系统! ·支持批量上传,抓取远程图片

    预览能让用户在上传后立即查看图片效果,缩略图则用于节省页面加载时间和优化显示。图片尺寸调整可以帮助用户适应不同的展示场景,比如社交媒体的封面尺寸、网页的适配等。 总的来说,这个“最快捷,最方便的图片...

    批量上传图片,可左右移动

    2. **文件预览**:在用户上传图片之前,JavaScript通常会提供一个预览功能,利用FileReader API读取文件内容并显示为缩略图。这有助于用户在上传前确认图片质量及方向。 3. **图片排序**:在前端,JavaScript可以...

    基于mvc的多图片上传预览

    预览过程中,可以使用HTML5的`FileReader` API读取文件内容并显示为缩略图。 为了实现多浏览器兼容,我们需要关注不同浏览器对HTML5特性的支持情况。例如,`FormData`、`FileReader`和`canvas`在较旧的浏览器中可能...

    基于.net(C#)的图片上传

    图片上传后,可能需要生成缩略图或者调整尺寸。C#可以通过第三方库如ImageMagick或System.Drawing来处理图像。例如,可以读取原始图像,创建一个新的Bitmap对象,设置新尺寸,然后用Graphics对象绘制原始图像到新的...

    php动态生成缩略图并输出显示的方法

    这种方法主要应用在需要快速生成图片缩略图的场景中,例如在图片上传后立即在网页上以缩略图形式展示给用户。它不仅提高了用户体验,还避免了存储大量缩略图文件对服务器空间的消耗。 在介绍动态生成缩略图的方法...

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

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

    采用webuploader插件实现单例、多例上传图片,图片回显等,-- demo资源

    在选择图片后,可以在上传之前展示缩略图: ```javascript uploader.on('fileQueued', function(file) { var $list = $('#fileList'); var $li = $( '&lt;div id="' + file.id + '" class="file-item thumbnail"&gt;' ...

    PHP多图片上传支持左右移动位置

    - 当用户选择图片后,`plupload`会触发`FileUploaded`事件,我们可以在回调中读取文件数据,创建缩略图并显示在页面上。 - 用户可以拖动图片预览框,模拟图片的左右移动,此时需要记录每个图片的顺序,一般用数组...

    thinkphp3.2.3后台登录功能(包括验证码和缩略图的实现)

    在本项目中,我们主要探讨的是使用ThinkPHP3.2.3框架实现后台登录功能,这一功能涵盖了验证码的生成、图片上传以及缩略图的创建等多个关键环节。下面将逐一详细解析这些知识点。 首先,验证码的实现是防止恶意登录...

    Vue+elementUI实现多图片上传与回显功能(含回显后继续上传或删除)

    通过以上步骤,我们可以实现一个完整的多图片上传功能,包括图片预览、手动上传、回显、继续上传或删除已上传图片。这种功能在很多应用场景中都很常见,如表单提交、产品展示等,掌握这一技术对于前端开发人员来说...

Global site tag (gtag.js) - Google Analytics