精华内容
下载资源
问答
  • layer.upload文件上传不能限定文件的大小

    layer.upload文件上传不能限定文件的大小吗


    展开全文
  • layuiupload加了文件大小限制

    千次阅读 2017-07-31 16:53:13
    @Title: layui.upload文件上传 - 全浏览器兼容版 @Author: 贤心 @License:MIT */layui.define('layer' , function(exports){ "use strict"; var $ = layui.jquery; var layer = layui.layer; var device =...
    /*!
    
     @Title: layui.upload 单文件上传 - 全浏览器兼容版
     @Author: 贤心
     @License:MIT
    
     */
    
    layui.define('layer' , function(exports){
      "use strict";
    
      var $ = layui.jquery;
      var layer = layui.layer;
      var device = layui.device();
    
      var elemDragEnter = 'layui-upload-enter';
      var elemIframe = 'layui-upload-iframe';
    
      var msgConf = {
        icon: 2
        ,shift: 6
      }, fileType = {
        file: '文件'
        ,video: '视频'
        ,audio: '音频'
      };
    
      var Upload = function(options){
        this.options = options;
      };
    
      //初始化渲染
      Upload.prototype.init = function(){
        var that = this, options = that.options;
        var body = $('body'), elem = $(options.elem || '.layui-upload-file');
        var iframe = $('<iframe id="'+ elemIframe +'" class="'+ elemIframe +'" name="'+ elemIframe +'"></iframe>');
    
        //插入iframe    
        $('#'+elemIframe)[0] || body.append(iframe);
    
        return elem.each(function(index, item){
          item = $(item);
          var form = '<form target="'+ elemIframe +'" method="'+ (options.method||'post') +'" key="set-mine" enctype="multipart/form-data" action="'+ (options.url||'') +'"></form>';
    
          var type = item.attr('lay-type') || options.type; //获取文件类型
    
          //包裹ui元素
          if(!options.unwrap){
            form = '<div class="layui-box layui-upload-button">' + form + '<span class="layui-upload-icon"><i class="layui-icon">&#xe608;</i>'+ (
              item.attr('lay-title') || options.title|| ('上传'+ (fileType[type]||'图片') )
            ) +'</span></div>';
          }
    
          form = $(form);
    
          //拖拽支持
          if(!options.unwrap){
            form.on('dragover', function(e){
              e.preventDefault();
              $(this).addClass(elemDragEnter);
            }).on('dragleave', function(){
              $(this).removeClass(elemDragEnter);
            }).on('drop', function(){
              $(this).removeClass(elemDragEnter);
            });
          }
    
          //如果已经实例化,则移除包裹元素
          if(item.parent('form').attr('target') === elemIframe){
            if(options.unwrap){
              item.unwrap();
            } else {
              item.parent().next().remove();
              item.unwrap().unwrap();
            }
          };
    
          //包裹元素
          item.wrap(form);
          //触发上传
          item.off('change').on('change', function(){
            console.log("上传文件大小:"+item[0].files[0].size/(1024*1024)+"MB")
            var size=item[0].files[0].size/(1024*1024)
            that.action(this,type,size);
          });
        });
      };
    
      //提交上传
      Upload.prototype.action = function(input,type,size){
        var that = this, options = that.options, val = input.value;
        var item = $(input), ext = item.attr('lay-ext') || options.ext || ''; //获取支持上传的文件扩展名;
        if(!val){
          return;
        };
    
        //校验文件
        switch(type){
          case 'file': //一般文件
            if(ext && !RegExp('\\w\\.('+ ext +')$', 'i').test(escape(val))){
              layer.msg('不支持该文件格式', msgConf);
              return input.value = '';
            }
            if(size>200){
                  layer.msg('文件大小不能超过200MB');
                  return input.value = '';
            }
          break;
          case 'video': //视频文件
            if(!RegExp('\\w\\.('+ (ext||'avi|mp4|wma|rmvb|rm|flash|3gp|flv') +')$', 'i').test(escape(val))){
              layer.msg('不支持该视频格式', msgConf);
              return input.value = '';
            }
            if(size>200){
                  layer.msg('视频大小不能超过200MB');
                  return input.value = '';
            }
          break;
          case 'audio': //音频文件
            if(!RegExp('\\w\\.('+ (ext||'mp3|wav|mid') +')$', 'i').test(escape(val))){
              layer.msg('不支持该音频格式', msgConf);
              return input.value = '';
            }
            if(size>100){
                  layer.msg('音频大小不能超过100MB');
                  return input.value = '';
            }
          break;
          default: //图片文件
            if(!RegExp('\\w\\.('+ (ext||'jpg|png|gif|bmp|jpeg') +')$', 'i').test(escape(val))){
              layer.msg('不支持该图片格式', msgConf);
              return input.value = '';
            }
            if(size>2){
                  layer.msg('图片大小不能超过2MB');
                  return input.value = '';
            }
          break;
        }
    
        options.before && options.before(input);
        item.parent().submit();
    
        var iframe = $('#'+elemIframe), timer = setInterval(function() {
          var res;
          try {
            res = iframe.contents().find('body').text();
          } catch(e) {
            layer.msg('上传接口存在跨域', msgConf);
            clearInterval(timer);
          }
          if(res){
            clearInterval(timer);
            iframe.contents().find('body').html('');
            try {
              res = JSON.parse(res);
            } catch(e){
              res = {};
              return layer.msg('请对上传接口返回JSON字符', msgConf);
            }
            typeof options.success === 'function' && options.success(res, input);
          }
        }, 30); 
    
        input.value = '';
      };
    
      //暴露接口
      exports('upload', function(options){
        var upload = new Upload(options = options || {});
        upload.init();
      });
    });
    
    
    展开全文
  • layuiupload上传文件并传递参数

    千次阅读 2019-11-19 15:26:18
    layuiupload传参方式: 使用layui文件上传功能,需要传入id和tablename两个参数 layui.upload.render({ ... size:'传入文件大小', before: function (){ this.data = { id: '传入id值', tablena...

    layui中upload传参方式:

    使用layui写文件上传功能,需要传入id和tablename两个参数
    
    layui.upload.render({
    	elem:'#id',
    	url:'接口路径',
    	accept:'file',
    	size:'传入文件的大小',
    	auto: false, //一定要写这个,不能会自动触发上传
    	//传入token值,否则会报401错误
    	header:{token:'token值'},
    	//在choose回调中可以对上传文件的大小或者宽高作限制
    	choose:function (obj) {
    		var flag = true;
    		obj.preview(function (obj){
    			if (file.size > 1 * 1024 * 1024){
    			top.layer.msg('文件大小不能超过1M')
    			
    			flag = false
    			}else {
    			//可以触发上传
    				obj.upload(index , file)
    			}
    		})
    	}
    	before: function (){
    		this.data = {
    			id: '传入id值',
    			tablename: '传入tablename的值'
    			
    		}
    	},
    	done: function (result) {
    		//获取到文件导入后的响应数据
    		做自己想要的操作,比如打印出来响应的结果;
    		console.log(result)
    	}
    })
    
    展开全文
  • Insert title here选择多文件文件名大小状态操作开始上传layui.use('upload', function(){var $ = layui.jquery,upload = layui.upload;//多文件列表示例var demoListView = $('#demoList'),uploadListIns = u...

    jsp 页面

    pageEncoding="UTF-8"%>

    Insert title here

    选择多文件

    文件名大小状态操作

    开始上传

    layui.use('upload', function(){

    var $ = layui.jquery

    ,upload = layui.upload;

    //多文件列表示例

    var demoListView = $('#demoList')

    ,uploadListIns = upload.render({

    elem: '#testList'

    ,url: '/Lol_uploadFile.action'

    ,accept: 'file'

    ,data:{id:123}   //还可以传参,参数id=123

    ,multiple: true

    ,auto: false

    ,bindAction: '#testListAction'

    ,success:function(msg) {

    $.each($.parseJSON(msg.jsonData),function(i,item){

    if (item.fileName==1) {

    alert("ok");

    } else {

    alert("ok");

    }

    });

    }

    ,choose: function(obj){

    var files = this.files = obj.pushFile(); //将每次选择的文件追加到文件队列

    //读取本地文件

    obj.preview(function(index, file, result){

    var tr = $(['

    '

    ,'

    '+ file.name +''

    ,'

    '+ (file.size/1014).toFixed(1) +'kb'

    ,'

    等待上传'

    ,'

    '

    ,'重传'

    ,'删除'

    ,'

    '

    ,'

    '].join(''));

    //单个重传

    tr.find('.demo-reload').on('click', function(){

    obj.upload(index, file);

    });

    //删除

    tr.find('.demo-delete').on('click', function(){

    delete files[index]; //删除对应的文件

    tr.remove();

    uploadListIns.config.elem.next()[0].value = ''; //清空 input file 值,以免删除后出现同名文件不可选

    });

    demoListView.append(tr);

    });

    }

    ,done: function(res, index, upload){

    $.each($.parseJSON(res.jsonData),function(i,item){

    if(item.success==1) {//上传成功

    var tr = demoListView.find('tr#upload-'+ index)

    ,tds = tr.children();

    tds.eq(2).html('上传成功');

    tds.eq(3).html(''); //清空操作

    return delete this.files[index]; //删除文件队列已经上传成功的文件

    }

    });

    this.error(index, upload);

    }

    ,error: function(index, upload){

    var tr = demoListView.find('tr#upload-'+ index)

    ,tds = tr.children();

    tds.eq(2).html('上传失败');

    tds.eq(3).find('.demo-reload').removeClass('layui-hide'); //显示重传

    }

    });

    });

    action方法

    需要添加两个属性

    List file;

    List fileFileName;

    //记住要添加对应的get、set

    public String updateImg() throws Exception {

    JSONArray array = new JSONArray();

    JSONObject obj = new JSONObject();

    if(UploadFile.uploadFileBase(0, file, fileFileName, UPLOADDIR)) {

    BusinessImage bsnImg = new BusinessImage();

    bsnImg.setId(Integer.parseInt(imgId));

    bsnImg.setImgUrl(UPLOADDIR+"/"+fileFileName.get(0));

    businessImageServiceImpI.updateBusinessImageAjax(bsnImg);

    obj.put("success", "1");

    } else {

    obj.put("success", "0");

    }

    array.put(obj);

    jsonData = array.toString();

    System.out.println(jsonData);

    return SUCCESS;

    }

    图片上传工具类

    package com.gxuwz.core.util;

    import java.io.File;

    import java.io.FileInputStream;

    import java.io.FileNotFoundException;

    import java.io.FileOutputStream;

    import java.io.IOException;

    import java.io.InputStream;

    import java.io.OutputStream;

    import java.util.List;

    import org.apache.struts2.ServletActionContext;

    public class UploadFile {

    @SuppressWarnings("deprecation")

    public static boolean uploadFileBase(int i,List

    file,List fileFileName,String uploadPath) throws Exception

    {

    try {

    InputStream in = new FileInputStream(file.get(i));

    String dir = ServletActionContext.getRequest().getRealPath(uploadPath);

    File fileLocation = new File(dir);

    //此处也可以在应用根目录手动建立目标上传目录

    if(!fileLocation.exists()){

    boolean isCreated  = fileLocation.mkdir();

    if(!isCreated) {

    //目标上传目录创建失败,可做其他处理,例如抛出自定义异常等,一般应该不会出现这种情况。

    return false;

    }

    }

    String fileName=fileFileName.get(i);

    File uploadFile = new File(dir, fileName);

    OutputStream out = new FileOutputStream(uploadFile);

    byte[] buffer = new byte[1024 * 1024];

    int length;

    while ((length = in.read(buffer)) > 0) {

    out.write(buffer, 0, length);

    }

    in.close();

    out.close();

    return true;

    } catch (FileNotFoundException ex) {

    ex.printStackTrace();

    return false;

    } catch (IOException ex) {

    ex.printStackTrace();

    return false;

    }

    }

    }

    如果不会配struct.xml 请往下看

    jsonData

    展开全文
  • Layui原生upload模块不支持文件上传进度条显示,百度,谷歌找了一下不太适用。后面找到一个别人修改好的JS,替换上去,修改一下页面显示即可使用,一下是部分代码 HTML:选择多文件文件名大小上传进度状态操作开始...
  • Layui原生upload模块不支持文件上传进度条显示,百度,谷歌找了一下不太适用。后面找到一个别人修改好的JS,替换上去,修改一下页面显示即可使用,一下是部分代码HTML:选择多文件文件名大小上传进度状态操作开始上传...
  • 每次点击选择文件按钮,控件自动生成一个input,将文件选择,选择后将其files中的属性提取出文件名,大小等信息,关于files可看这篇文章。选择的文件可以累加,文件的files都会保存在构造函数内部 ...
  • 借阅前端代码选择多文件图片大小状态操作不计在线删除开始上传JS 代码layui.use('upload', function(){var upload = layui.upload;console.log(upload);//执行实例//多文件列表示例var demoListView = $('#demoList'...
  • html页面的代码(注意:引入layui相关的css):选择多文件文件名大小状态操作xxx.txtxxxkb等待上传重传删除js的编写(引入layui相关的js):layui.use(['upload','form','layer','laydate'], function(){var $ = layui....
  • 借阅前端代码选择多文件图片大小状态操作不计在线删除开始上传JS 代码layui.use(‘upload‘, function(){var upload = layui.upload;console.log(upload);//执行实例//多文件列表示例var demoListView = $(‘#...
  • fileupload、commons-io3、在spring配置文件中限制上传文件大小,否则会报错4、jsp页面代码上传图片5、js代码//图片上传layui.use('upload',functi...
  • 关于layui.upload的before上传前对文件类型及文件大小判断,阻止默认上传实现方法【下图代码是对图片上传是宽高限制处理】: layui.use(['upload', 'form'], function () { var upload = layui.upload; var ...
  • 今天做了一个多文件上传的页面,运用的是layui前端框架,顺便把后台处理代码也贴出来,仅供参考第一步:layui下载安装第二步:前端样式选择多文件文件名大小状态操作开始上传取消第三步:js处理$(function(){var id=...
  • Layui原生upload模块不支持文件上传进度条显示,百度,谷歌找了一下不太适用。后面找到一个别人修改好的JS,替换上去,修改一下页面显示即可使用,一下是部分代码HTML:选择多文件文件名大小上传进度状态操作开始上传...
  • layui文件上传与下载示例

    千次阅读 2019-08-27 22:45:11
    第一次写文件上传,不知道怎么下手。 幸好有万能layui 方便了很多 HTML ` 产品文件上传 ... 大小 ... 选择文件 ...`layui.use(‘upload’, function(){ var $ = layui.jquery ,upl...
  • php结合layui前端实现多图上传前端html代码请选择图片文件名图片预览大小状态操作开始上传js 代码layui.use('upload', function() {var $ = layui.jquery,upload = layui.upload;//多文件列表示例var demoListView =...
  • 首先记录下更改文件上传大小的一些配置信息.打开php.inifile_uploads = on     //是否允许通过HTTP上传文件的开关,默认开启upload_tmp_dir //临时文件储存的路径upload_max_filesize 20M //允许上传的文件...
  • php结合layui前端实现多图上传前端html代码请选择图片文件名图片预览大小状态操作开始上传js 代码layui.use('upload', function() {var $ = layui.jquery,upload = layui.upload;//多文件列表示例var demoListView =...
  • php结合layui前端实现多图上传前端html代码请选择图片文件名图片预览大小状态操作开始上传js 代码layui.use('upload', function() {var $ = layui.jquery,upload = layui.upload;//多文件列表示例var demoListView =...
  • php结合layui前端实现多图上传前端html代码请选择图片文件名图片预览大小状态操作开始上传js 代码layui.use('upload', function() {var $ = layui.jquery,upload = layui.upload;//多文件列表示例var demoListView =...
  • 对几个大小不一的txt进行文件上传使用的是struts2,没有用表单,用了layui提供的文件上传具体官方文档http://www.layui.com/doc/modules/upload.html这里就不做多说明了。页面代码如下:(还需导入一些layui的js、...
  • html:选择多文件文件名大小状态操作开始上传在upload中增加一个before,在before中添加参数before: function (obj) {this.data = {"BUSINESS_ID": getUrlParam("id"),"FLOW_ID": getUrlParam("flowId"),"FLOW_NODE_...
  • layui根据不同分辨率弹出不同比例的窗口(弹出层) 当电脑页面分辨率较低,页面造成坍塌问题,给不同分辨率的页面设置不同的弹窗百分比大小,问题就解决了。 $("#doupload").click(function () { layer.open({ ...
  • LOG.info("图片大小:" + files[i].getSize() / 1024 + "KB"); //获取图片的文件名 String fileName = files[i].getOriginalFilename(); //获取图片的扩展名 String extensionName = fileName.substring...
  • 前端html重点代码如下:上传文件选择多文件文件名大小状态操作开始上传相应的,js代码如下所示:layui.use('upload', function(){var $ = layui.jquery,upload = layui.upload;//多文件列表示例var demoListView = $...

空空如也

空空如也

1 2
收藏数 38
精华内容 15
关键字:

layuiupload文件大小