zoukankan      html  css  js  c++  java
  • js上传


    // 文件格式
    <input type="file" class="bookVal" fileName="" fileUrl="" fileSuffix="" fileSize="" onchange="startUploadFn(this)">
    // 图片 accept标识接受的类型 如果是文件则需要特殊的符号标识
    <input type="file" class="bookImgVal" fileUrl="" accept="image/gif, image/jpeg, image/png" onchange="uploadImg(this)">

    function startUploadFn(ele){
    var that = $(ele);
    var formData = new FormData();
    var fileObj = that.get(0).files[0]; // js 获取文件对象
    if (typeof (fileObj) == "undefined" || fileObj.size <= 0) {
    layer.msg('请选择文件', {icon: 1, time:600});
    return;
    }
    console.log(fileObj)
    let typeFlag = false

    // 通过后缀 校验文件格式
    const fileTypeArr = ['doc','docx','xls','xlsx','ppt','PPTX','pdf'] //'wps','txt'
    const index = fileObj.name.lastIndexOf(".")
    const postfix = fileObj.name.substr(index+1).toLowerCase()
    for (let el of fileTypeArr) {
    if (postfix === el.toLowerCase()) {
    typeFlag = true
    }
    }
    if (!typeFlag) {
    layer.msg("请选符合要求的文件格式", {icon: 2, time:1000});
    return
    }

    // 通过type参数校验文件格式
    const imgType = fileObj.type.toLowerCase();
    var if( (imgType == "image/jpg") || (imgType == "image/jpeg") || (imgType == "image/png") || (imgType == "image/gif") ){
    layer.msg("符合图片文件格式", {icon: 2, time:1000});
    return
    };

    // 校验文件大小
    const isSize = Math.floor(fileObj.size / 1024 );
    if(isSize>50) {
    layer.msg("图片大小不超过50KB", {icon: 2, time:1000});
    return false;
    }

    formData.append("file", fileObj); //加入文件对象
    formData.append("type", 1);

    // 加载层
    var layerUploadIndex = layer.load(1, {
    shade: [0.1,'#fff'] //0.1透明度的白色背景
    });
    $.ajax({
    url: baseUrl+"/fileUplad/uploadFile",
    type: "post",
    dataType: "json",
    data:formData,
    cache: false,//上传文件无需缓存
    processData: false,//用于对data参数进行序列化处理 这里必须false
    contentType: false, //必须
    success: function (result) {
    //关闭
    layer.close(layerUploadIndex);

    if(result.code==-1){
    layer.msg(result.message, {icon: 2, time:1000});
    }else{
    layer.msg("上传成功", {icon: 1, time:600});

    // 截取名字
    const name = fileObj.name.substring(0,fileObj.name.lastIndexOf('.'));
    }
    },
    error:function (err) {
    //关闭
    layer.close(layerUploadIndex);
    layer.msg("操作失败", {icon: 2, time:600});
    }
    })
    }

  • 相关阅读:
    BZOJ 3132: 上帝造题的七分钟 树状数组+差分
    PAT Advanced 1006 Sign In and Sign Out (25 分)
    PAT Advanced 1011 World Cup Betting (20 分)
    PAT Basic 1032 挖掘机技术哪家强 (20 分)
    PAT Basic 1028 人口普查 (20 分)
    PAT Basic 1004 成绩排名 (20 分)
    大数据数据库HBase(二)——搭建与JavaAPI
    PAT Advanced 1009 Product of Polynomials (25 分)(vector删除元素用的是erase)
    PAT Advanced 1002 A+B for Polynomials (25 分)(隐藏条件,多项式的系数不能为0)
    PAT Basic 1041 考试座位号 (15 分)
  • 原文地址:https://www.cnblogs.com/bester-ace/p/12954880.html
Copyright © 2011-2022 走看看