• JS form表单图片上传


     1 // 点击file 类型的input 触发的方法
     2 
     3 function changesProvider(){
     4 
     5   // fileProvider -> input中的name属性值 
     6 
     7   var f = document.getElementByName("fileProvider")[0].files;
     8 
     9   // 图片大小判断
    10 
    11   if( f[0].size. > 1024*3*1024 ){
    12 
    13        // 清空form表单中的结构
    14 
    15     $("#formBoxProvider").children.remove();
    16 
    17     // 把原先得结构重新动态添加进去
    18 
    19     $("#formBoxProvider").append( "<label for='uploadProvider' class='label_bg'></label><input id='uploadProvider' onchange='changesProvider()' name='fileProvider' type='file' accept='.jpg, .jpeg, .png'>" );
    20 
    21     message({
    22 
    23       type: "error",
    24 
    25       message: "图片文件不能大于3M"
    26 
    27     })
    28 
    29     return false;
    30 
    31   }
    32 
    33      //先new一个formData对象
    34 
    35   var formData = new FormData( $("#formBoxProvider")[0] );
    36 
    37   //ajax交互
    38 
    39    $.ajax({
    40 
    41     type: 'POST',
    42 
    43     url: '${pageContext.request.contextPath}' + 'serve/provider/image/upload.shtml',
    44 
    45     data: formData,
    46 
    47     contentType: false,
    48 
    49     processData: false,
    50 
    51     success: function (data) {
    52 
    53       if( data.errno == 1 ){
    54 
    55         // 成功必须再次清空form表单中的DOM结构
    56 
    57          // 清空form表单中的结构
    58 
    59         $("#formBoxProvider").children.remove();
    60 
    61         // 把原先得结构重新动态添加进去
    62 
    63         $("#formBoxProvider").append( "<label for='uploadProvider' class='label_bg'></label><input id='uploadProvider' onchange='changesProvider()' name='fileProvider' type='file' accept='.jpg, .jpeg, .png'>" );
    64 
    65         var imagePath = imageUrl + data.data;
    66 
    67         //盒子中具体图片元素
    68         var imageItem = "<div class='item-box'><span class='detele_sign'><img class='pImage' src='" + imagePath + "'></span></div>";
    69         #("upload-sign").before(imageItem);
    70         $(".detele_sign").on("click", function(){
    71 
    72                $(this).parents('.item-box').remove(); 
    73 
    74           if($('.item-box').length < 7 ){
    75 
    76             $("#upload-sign").show();
    77           } 
    78 
    79            });
    80 
    81         if($('.item-box').length  == 7){
    82 
    83           $("#upload-sign").hide();
    84         }  
    85     }, //success end
    86     error: function(data){
    87 
    88     }
    89   }) //ajax end
    90 
    91 
    92 
    93 }
  • 相关阅读:
    css变量
    es6的this指向
    Java面试题(包装类)
    moment笔记
    Class
    CSS斜切角
    Element.getBoundingClientRect()
    Do not mutate vuex store state outside mutation handlers.
    antd不想写那么多option怎么办
    解析URL参数
  • 原文地址:https://www.cnblogs.com/zsongs/p/5950357.html
Copyright © 2020-2023  润新知