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动态加载三
Aug 22 Javascript
jQuery 遍历-nextUntil()方法以及prevUntil()方法的使用介绍
Apr 26 Javascript
谈谈jQuery Ajax用法详解
Nov 27 Javascript
jquery动态创建div与input的实例代码
Oct 12 Javascript
解决vue router使用 history 模式刷新后404问题
Jul 19 Javascript
js下拉菜单生成器dropMenu使用方法详解
Aug 01 Javascript
JQuery 又谈ajax局部刷新
Nov 27 jQuery
AngularJS 多指令Scope问题的解决
Oct 25 Javascript
详解微信小程序缓存--缓存时效性
May 02 Javascript
Vuex新手的理解与使用详解
May 31 Javascript
解决vue-cli webpack打包开启Gzip 报错问题
Jul 24 Javascript
jQuery-Citys省市区三级菜单联动插件使用详解
Jul 26 jQuery
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
解析用PHP实现var_export的详细介绍
2013/06/20 PHP
20个2014年最优秀的PHP框架回顾
2014/10/22 PHP
PHP简单操作MongoDB的方法(安装及增删改查)
2016/05/26 PHP
php获得文件夹下所有文件的递归算法的简单实例
2016/11/01 PHP
PHP远程连接oracle数据库操作实现方法图文详解
2019/04/11 PHP
php ActiveMQ的安装与使用方法图文教程
2020/02/23 PHP
Mootools 1.2教程(2) DOM选择器
2009/09/14 Javascript
js客户端快捷键管理类的较完整实现和应用
2010/06/08 Javascript
面向对象的Javascript之三(封装和信息隐藏)
2012/01/27 Javascript
基于jQuery的360图片展示实现代码
2012/06/14 Javascript
jquery实现无限分级横向导航菜单的方法
2015/03/12 Javascript
JavaScript html5 canvas绘制时钟效果
2016/03/01 Javascript
BootStrap制作导航条实例代码
2016/05/06 Javascript
JavaScript重载函数实例剖析
2016/05/13 Javascript
对jQuary选择器的全面总结
2016/06/20 Javascript
一步一步实现Vue的响应式(对象观测)
2019/09/02 Javascript
layui--js控制switch的切换方法
2019/09/03 Javascript
详解elementUI中input框无法输入的问题
2020/04/27 Javascript
ant design vue嵌套表格及表格内部编辑的用法说明
2020/10/28 Javascript
Python回调函数用法实例详解
2015/07/02 Python
利用信号如何监控Django模型对象字段值的变化详解
2017/11/27 Python
python 把文件中的每一行以数组的元素放入数组中的方法
2018/04/29 Python
python获取Linux发行版名称
2019/08/30 Python
python 有效的括号的实现代码示例
2019/11/11 Python
matplotlib 三维图表绘制方法简介
2020/09/20 Python
HTML5的自定义属性data-*详细介绍和JS操作实例
2014/04/10 HTML / CSS
使用phonegap操作数据库的实现方法
2017/03/31 HTML / CSS
橄榄树药房:OLIVEDA
2019/09/01 全球购物
Genny意大利官网:意大利高级时装品牌
2020/04/15 全球购物
成功的酒店创业计划书
2013/12/27 职场文书
艺术学院毕业生自我评价
2014/03/02 职场文书
实名检举信范文
2015/03/02 职场文书
2016幼儿园中班开学寄语
2015/12/03 职场文书
vue+springboot实现登录验证码
2021/05/27 Vue.js
如何判断pytorch是否支持GPU加速
2021/06/01 Python
HTML5中的DOCUMENT.VISIBILITYSTATE属性详解
2023/05/07 HTML / CSS