javascript实现图片上传前台页面


Posted in Javascript onAugust 18, 2015

这篇文章主要通过代码分析javascript实现图片上传前台页面,废话不多说了,直接贴代码了。

代码示例一:

<script>
  //检查图片的格式是否正确,同时实现预览
  function setImagePreview(obj, localImagId, imgObjPreview) {
   var array = new Array('gif', 'jpeg', 'png', 'jpg', 'bmp'); //可以上传的文件类型 
   if (obj.value == '') {
    $.messager.alert("提示", "让选择要上传的图片!");
    flag = false;
    return false;
   }
   else {
    var fileContentType = obj.value.match(/^(.*)(\.)(.{1,8})$/)[3]; //这个文件类型正则很有用 
    ////布尔型变量 
    var isExists = false;
    var objValue = obj.value;
    try {
     //对于IE判断要上传的文件的大小 
     var fso = new ActiveXObject("Scripting.FileSystemObject");
     fileLenth = parseInt(fso.getFile(objValue).size);
    } catch (e) {
     try {
      //对于非IE获得要上传文件的大小 
      fileLenth = parseInt(obj.files[0].size);
     } catch (e) {
      flag = false;
      return false;
     }
    }
    //循环判断图片的格式是否正确 
    for (var i in array) {
     if (fileContentType.toLowerCase() == array[i].toLowerCase()) {
      //图片格式正确之后,根据浏览器的不同设置图片的大小 
      if (obj.files && obj.files[0]) {
       //火狐下,直接设img属性 
       imgObjPreview.style.display = 'block';
       imgObjPreview.style.width = '180px';
       imgObjPreview.style.height = '200px';
       //火狐7以上版本不能用上面的getAsDataURL()方式获取,需要一下方式 
       imgObjPreview.src = window.URL.createObjectURL(obj.files[0]);
       if (fileLenth > 102400) {
        $.messager.alert("提示", "请选择小于100k的图片!");
        flag = false;
        return false;
       }
      }
      else {
       //IE下,使用滤镜 
       obj.select();
       var imgSrc = document.selection.createRange().text;
       //必须设置初始大小 
       localImagId.style.width = "180px";
       localImagId.style.height = "200px";
       //图片异常的捕捉,防止用户修改后缀来伪造图片 
       try {
        localImagId.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)";
        localImagId.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgSrc;
       }
       catch (e) {
        $.messager.alert("提示", "您上传的图片格式不正确,请重新选择!");
        flag = false;
        return false;
       }
       imgObjPreview.style.display = 'none';
       document.selection.empty();
      }
      isExists = true;
      flag = true;
      return true;
     }
    }
    if (isExists == false) {
     $.messager.alert("提示", "上传图片类型不正确!");
     flag = false;
     return false;
    }
    flag = false;
    return false;
   }
  } 
 </script>
<tr class="detailInfo">
    <td align="right">
     上传照片:
    </td>
    <td align="left" >
     <input type="file" id="idFile" name="idFile" width="150px" runat="server" onchange="javascript:setImagePreview(this,localImag,preview);" />
    </td> 
   </tr>
   <tr class="detailInfo">
    <td align="right">
     预 览:
    </td>
    <td>
     <div id="localImag">
      <img id="preview" alt="预览图片" src="../img/userphoto.jpg" style="width: 150px; height: 170px;" />
     </div>
    </td> 
   </tr>

代码示例二:

<!doctype html> 
<html> 
 <head> 
  <meta charset="utf-8" /> 
  <title>ImageDialog Examples</title> 
  <link rel="stylesheet" href="../themes/default/default.css" /> 
  <script src="../kindeditor.js"></script> 
  <script src="../lang/zh_CN.js"></script> 
  <script> 
   KindEditor.ready(function(K) { 
    var editor = K.editor({ 
     allowFileManager : true 
    }); 
    K('#image1').click(function() { 
     editor.loadPlugin('image', function() { 
      editor.plugin.imageDialog({ 
       imageUrl : K('#url1').val(), 
       clickFn : function(url, title, width, height, border, align) { 
        K('#url1').val(url); 
        editor.hideDialog(); 
       } 
      }); 
     }); 
    }); 
    K('#image2').click(function() { 
     editor.loadPlugin('image', function() { 
      editor.plugin.imageDialog({ 
       showLocal : false, 
       imageUrl : K('#url2').val(), 
       clickFn : function(url, title, width, height, border, align) { 
        K('#url2').val(url); 
        editor.hideDialog(); 
       } 
      }); 
     }); 
    }); 
    K('#image3').click(function() { 
     editor.loadPlugin('image', function() { 
      editor.plugin.imageDialog({ 
       showRemote : false, 
       imageUrl : K('#url3').val(), 
       clickFn : function(url, title, width, height, border, align) { 
        K('#url3').val(url); 
        editor.hideDialog(); 
       } 
      }); 
     }); 
    }); 
   }); 
  </script> 
 </head> 
 <body> 
  <p><input type="text" id="url1" value="" /> <input type="button" id="image1" value="选择图片" />(网络图片 + 本地上传)</p> 
  <p><input type="text" id="url2" value="" /> <input type="button" id="image2" value="选择图片" />(网络图片)</p> 
  <p><input type="text" id="url3" value="" /> <input type="button" id="image3" value="选择图片" />(本地上传)</p> 
 </body> 
</html>

当点击选择图片时加载该js。然后复制imageDialog,在image.js查找它,会发现里面跟这差不多的东西。这时就应该懂了,upload_json.jsp设置url,title,width,height,order,align,前台就可以使用了。

以上是本文对javascript实现图片上传前台页面的全部内容,希望大家喜欢。

Javascript 相关文章推荐
JavaScript 注册事件代码
Jan 27 Javascript
JS上传图片前的限制包括(jpg jpg gif及大小高宽)等
Dec 19 Javascript
Jquery 效果使用详解
Nov 23 Javascript
简单介绍jsonp 使用小结
Jan 27 Javascript
jQuery遍历DOM节点操作之filter()方法详解
Apr 14 Javascript
AngularJS中的指令全面解析(必看)
May 20 Javascript
vue-prop父组件向子组件进行传值的方法
Mar 01 Javascript
vue中rem的配置的方法示例
Aug 30 Javascript
在微信小程序中渲染HTML内容的方法示例
Sep 28 Javascript
微信小程序云开发之云函数详解
May 16 Javascript
vue柱状进度条图像的完美实现方案
Aug 26 Javascript
微信小程序中插入激励视频广告并获取收益(实例代码)
Dec 06 Javascript
jquery使用ul模拟select实现表单美化的方法
Aug 18 #Javascript
jQuery实现的漂亮表单效果代码
Aug 18 #Javascript
jquery实现select下拉框美化特效代码分享
Aug 18 #Javascript
js实现iPhone界面风格的单选框和复选框按钮实例
Aug 18 #Javascript
JS+DIV+CSS实现仿表单下拉列表效果
Aug 18 #Javascript
js模拟淘宝网的多级选择菜单实现方法
Aug 18 #Javascript
js实现Select头像选择实时预览代码
Aug 17 #Javascript
You might like
Yii2实现同时搜索多个字段的方法
2016/08/10 PHP
php实现支持中文的文件下载功能示例
2017/08/30 PHP
一直复略了的一个问题,关于表单重复提交
2007/02/15 Javascript
Whatever:hover 无需javascript让IE支持丰富伪类
2010/06/29 Javascript
Extjs TimeField 显示正常时间格式的代码
2011/06/28 Javascript
JS+CSS实现带有碰撞缓冲效果的竖向导航条代码
2015/09/15 Javascript
详解JavaScript基本类型和引用类型
2015/12/09 Javascript
AngularJs表单验证实例代码解析
2016/11/29 Javascript
Javascript中引用类型传递的知识点小结
2017/03/06 Javascript
jQuery实现div跟随鼠标移动
2020/08/20 jQuery
前端页面文件拖拽上传模块js代码示例
2017/05/19 Javascript
详解nodeJs文件系统(fs)与流(stream)
2018/01/24 NodeJs
详解微信小程序调起键盘性能优化
2018/07/24 Javascript
详解webpack-dev-server使用方法
2018/09/14 Javascript
详解vue 路由跳转四种方式 (带参数)
2019/04/28 Javascript
React传值 组件传值 之间的关系详解
2019/08/26 Javascript
基于node+vue实现简单的WebSocket聊天功能
2020/02/01 Javascript
JavaScript原型继承和原型链原理详解
2020/02/04 Javascript
JS相册图片抖动放大展示效果的示例代码
2021/01/29 Javascript
[48:05]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 VGJ.T vs VP
2018/03/31 DOTA
python排序方法实例分析
2015/04/30 Python
Python的Django框架中使用SQLAlchemy操作数据库的教程
2016/06/02 Python
python自动循环定时开关机(非重启)测试
2019/08/26 Python
浅谈python print(xx, flush = True) 全网最清晰的解释
2020/02/21 Python
CSS图片翻转动画技术详解(IE也实现了)
2014/04/03 HTML / CSS
css3实现蒙版弹幕功能
2019/06/18 HTML / CSS
印度首个本地在线平台:nearbuy
2019/03/28 全球购物
法学专业个人求职信
2013/09/26 职场文书
服装电子商务创业计划书
2014/01/30 职场文书
大学四年个人的自我评价
2014/02/26 职场文书
幼儿园2014年度工作总结
2014/11/10 职场文书
幼儿园庆元旦主持词
2015/07/06 职场文书
matplotlib画混淆矩阵与正确率曲线的实例代码
2021/06/01 Python
CSS 使用 resize 实现图片拖拽切换预览功能(强大功能)
2021/08/23 HTML / CSS
Java 超详细讲解数据结构中的堆的应用
2022/04/02 Java/Android
【DOTA2】高能暴走TK秀!PSG LGD vs ASTER - DPC 2022 WINTER TOUR CN
2022/04/02 DOTA