`

(转)JS实现图片上载时的预览

 
阅读更多
  在客户端中,用JS实现文件上传时的图片预览,是个不错的选择,但其实在IE,FIREFOX下还好,在opera,safi,chrome下却不行的,下面转个在ie,firefox下实现的方法
firefox使用了getAsDataURL方法,而IE是用了滤镜。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <body>
        <input type=file name="doc" id="doc" onchange="javascript:setImagePreview();">
<p>
<div id="localImag"><img id="preview" width=-1 height=-1 style="diplay:none" /></div>
</p>
<script>
function setImagePreview() {
    var docObj=document.getElementById("doc");
    var fileName = docObj.value;
    var imgObjPreview=document.getElementById("preview");
        if(docObj.files &&  docObj.files[0]){
            //火狐下,直接设img属性
            imgObjPreview.style.display = 'block';
            imgObjPreview.style.width = '150px';
            imgObjPreview.style.height = '120px';          
            imgObjPreview.src = docObj.files[0].getAsDataURL();
        }else{
            //IE下,使用滤镜
            docObj.select();
            var imgSrc = document.selection.createRange().text;
            var localImagId = document.getElementById("localImag");
            //必须设置初始大小
            localImagId.style.width = "150px";
            localImagId.style.height = "120px";
            //图片异常的捕捉,防止用户修改后缀来伪造图片
            try{
                localImagId.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)";
                localImagId.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgSrc;
            }catch(e){
                alert("您上传的图片格式不正确,请重新选择!");
                return false;
            }
            imgObjPreview.style.display = 'none';
            document.selection.empty();
        }
        return true;
    }
</script>
</body>
</html>

  一个更完善的方案讲解,可以参考http://hudeyong926.iteye.com/blog/693018
分享到:
评论

相关推荐

    纯 js 实现得 图片上传预览插件

    【纯 js 实现得 图片上传预览插件】 在前端开发中,图片上传和预览功能是非常常见且重要的一个部分。本项目采用原生JavaScript实现了这样一个图片上传预览插件,无需依赖jQuery或其他第三方库,使代码更加轻量级且...

    js实现图片上传预览功能

    js实现图片上传预览功能,自己稍微加工了一下,这个在IE9上面挺有意思的,alert(img.offsetWidth+"---"+img.offsetHeight);第一次输出每次都是28---30,第二次之后就会显示图片的实际大小,具体原理不懂,有明白的...

    原生JS实现图片上传前的预览

    "原生JS实现图片上传前的预览"是一个基础但至关重要的技术点,尤其对于初学者而言,掌握这一技能能够提升项目的交互体验。在这个场景下,我们通常会用到HTML5中的File API,它提供了对用户选择的文件进行读取、操作...

    dom原理实现js上传图片预览

    dom原理实现js上传图片预览dom原理实现js上传图片预览dom原理实现js上传图片预览dom原理实现js上传图片预览dom原理实现js上传图片预览dom原理实现js上传图片预览dom原理实现js上传图片预览dom原理实现js上传图片预览...

    JS+asp.net+图片上传+预览+支持多上传+上传前预览

    在图片上传中,JS通常用于处理用户选择文件后在本地预览图片,验证文件类型和大小,以及提供一个友好的用户体验,如进度条显示上传进度。 1. **图片预览**:使用HTML5的FileReader API,开发者可以读取用户选择的...

    纯javascript实现上传图片前图片预览,判断图片大小

    在本文中,我们将深入探讨如何使用纯JavaScript实现上传图片前的预览功能,并且检查图片的大小,确保兼容性覆盖到IE7至IE10、Firefox以及Chrome等主流浏览器。这个功能对于用户交互体验有着重要的作用,因为它允许...

    js上传图片预览图片.pdf

    "JS上传图片预览技术" 在Web开发中,上传图片预览...JS上传图片预览技术是通过 HTML、CSS 和 JavaScript 实现的,该技术可以跨浏览器实现图片上传预览功能,並且能够自动调整图片的尺寸以适应不同的浏览器和屏幕尺寸。

    js图片上传并预览图片

    在JavaScript中实现图片上传并预览功能是一项常见的前端任务,主要涉及到HTML5的...以上是实现“js图片上传并预览图片”的主要技术点和步骤,理解并掌握这些知识点,可以构建出稳定且用户体验良好的图片上传预览功能。

    angularjs实现上传图片并且预览

    2. **图片预览**:在用户选择图片后,我们可以在页面上实时预览图片。这可以通过JavaScript的FileReader API实现。在AngularJS的控制器中,我们可以添加一个方法来处理预览: ```javascript $scope.uploadImage = ...

    JavaScript实现图片上传并预览并提交ajax(完整demo)

    这个DEMO是一个完整的图片上传预览并使用AJAX提交的流程,适用于现代浏览器。它结合了HTML5的新特性与JavaScript的异步处理能力,为用户提供了一种流畅的交互体验。在实际项目中,可能还需要考虑更多细节,比如兼容...

    ASP.NET MVC实现图片上传、图片预览显示

    - 实现图片预览功能,使用JavaScript编写即时图片预览的代码,当用户选择图片时,预览区域会显示选中的图片。 - 使用base64编码方式将图片存储为字符串,并在视图中用标签展示。Razor语法可以帮助简化此过程。 5. ...

    bootstrap图片上传和预览

    在这个场景下,我们讨论的是如何在Bootstrap环境中实现图片的上传和预览功能。 首先,我们要了解`bootstrap-fileinput`,这是一个基于Bootstrap的高级文件输入插件,由Krajee提供。这个插件极大地扩展了...

    js图片上传预览效果

    本知识点将围绕“js图片上传预览效果”这一主题,结合提供的文件名列表,深入讲解实现这一功能的关键技术和步骤。 首先,`ImagePreview.ashx`可能是服务器端处理图片预览的处理程序,它可能接收图片数据并返回预览...

    js预览图片 上传前预览图片 兼容ie6.7.8.9 ff 谷歌 opera 苹果浏览器不兼容

    在JavaScript编程中,预览图片是一项常见的需求,特别是在文件上传功能中。用户在选择图片文件后,能够在上传之前先预览图片,这样可以提供更好的用户体验,确保用户上传的图片符合预期。这个标题提到的"js预览图片 ...

    js 实现 上传图片时预览

    js 实现 上传图片时预览! 值得下载看看!资源免费,大家分享!!

    j2ee里图片上传及预览的实现

    预览图片的大小可以通过JavaScript动态修改`&lt;img&gt;`标签的`height`和`width`属性来实现。在示例代码中,用户可以输入图片的宽度和高度,`img()`函数会根据这些值调整预览图片的尺寸。 3. 上传格式控制: 虽然前端...

    zyUpload实现图片预览上传

    【zyUpload实现图片预览上传】是一个用于网页端图片上传并提供预览功能的解决方案,它支持HTML5、Java和PHP等技术。这个工具的主要优点是用户在上传图片之前可以预览效果,增强了用户体验,同时也提供了多语言后端...

    纯js实现浏览器图片选择预览、旋转、批量上传

    【标题】:“纯js实现浏览器图片选择预览、旋转、批量上传” 这篇博客主要讨论了如何使用纯JavaScript在浏览器环境中实现实现图片的选择预览、旋转以及批量上传功能。JavaScript是一种广泛应用于网页开发的编程语言...

    JS+HTML5实现上传图片预览效果

    本文将深入探讨如何使用JavaScript(JS)和HTML5技术来实现在网页上上传图片并实时预览的效果。这一功能允许用户在正式提交之前查看他们选择的图片,增加了交互性和准确性。 首先,HTML5引入了一项新特性——`...

    jQuery实现上传图片预览

    2. 当鼠标悬浮在预览图片上时,会弹出一个跟随鼠标的大图预览,提高了用户体验。 3. 当鼠标离开预览图片时,大图预览自动消失。 通过这种方式,不仅提升了用户体验,还让整个界面更加生动有趣。对于那些需要用户...

Global site tag (gtag.js) - Google Analytics