layui上传文件时,如何动态修改上传的url

182 阅读1分钟

在before钩子中,用this.url获取并修改

//常规使用 - 普通图片上传
var uploadInst = upload.render({
  elem: '#test1',
  size:"200",
  url:'/aaa/bbb/ccc, //此处用的是第三方的 http 请求演示,实际使用时改成您自己的上传接口即可。
  before: function(obj){
    this.url = `newUrl/xxx/yyy`
    console.log('this.url',this.url);
    //预读本地文件示例,不支持ie8
    obj.preview(function(index, file, result){
      $('#demo1').attr('src', result); //图片链接(base64)
    });
    element.progress('demo', '0%'); //进度条复位
    layer.msg('上传中', {icon: 16, time: 0});
  },
  done: function(res){
    console.log(res)
    //如果上传失败
    if(res.errcode == 0){
      mediaId = res.media_id
    }else{
      return layer.msg('上传失败');
    }
    //上传成功的一些操作
    //……
    $('#demoText').html(''); //置空上传失败的状态
  },
  error: function(){
    //演示失败状态,并实现重传
    var demoText = $('#demoText');
    demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
    demoText.find('.demo-reload').on('click', function(){
      uploadInst.upload();
    });
  }
  //进度条
  ,progress: function(n, elem, e){
    element.progress('demo', n + '%'); //可配合 layui 进度条元素使用
    if(n == 100){
      layer.msg('上传完毕', {icon: 1});
    }
  }
});