bootstrap-fileinput结合OSS上云(前端直传OSS)

1 篇文章 0 订阅
1 篇文章 0 订阅

写死方式

control.fileinput({
    language: 'zh', //设置语言
    uploadUrl: 'http://{你的bucket}.oss-cn-shenzhen.aliyuncs.com/', //上传的地址  后面一定要加/,
    ajaxSettings:{headers:{
        'Access-Control-Allow-Origin': '*',
    }},
    uploadExtraData: function (previewId, index) {
        return {
             //这里可以写死,也可以请求服务端获取
            'key': "notice/${filename}", //保存地址
            'policy': '请求合法验证',
            'OSSAccessKeyId':,'oss配置的accessKeyId',
            'success_action_status': '204', //不能写200因为fileinput组件会报json解析错误
            'signature': '签名信息',
    },
    removeFromPreviewOnError: true,//是否移除校验文件失败的文件
    allowedFileExtensions: allowedFileExtensions,//接收的文件后缀
    uploadAsync: true, //是否允许异步上传
    showUpload: true, //是否显示上传按钮
    showCaption: false,//是否显示标题
    browseClass: "btn btn-primary", //按钮样式
    maxFileCount: 1, //表示允许同时上传的最大文件个数
    enctype: 'multipart/form-data',
    previewFileIcon: "<i class='glyphicon glyphicon-king'></i>",
    msgFilesTooMany: "选择上传的文件数量({n}) 超过允许的最大数值{m}!",
});

服务器获取方式

// 封装一个公用方法,需要的地方直接调用
function upFile1(path) {
  let OSSobj = {};
  let prefixPath = { prefixPath: path};
  console.log(path,'path');
  let keyPath = path.split('/')[1] + '/${filename}'
  $.ajax({
    type: "GET",
    url: "请求地址",
    data: prefixPath,
    contentType: "application/json",
    async:false,//同步接收值
    success: function (data) {
      OSSobj = {
        'key': keyPath,
        'policy':data.data.policy,
        'OSSAccessKeyId':data.data.accessid,
        'success_action_status':'204',
        'signature':data.data.signature
      };
    },
    error: function () {},
  });
  return OSSobj
}

// 获取OSS验证信息
const OSSobj = upFile1(window.location.pathname) 
control.fileinput({
    language: 'zh', //设置语言
    uploadUrl: 'http://{你的bucket}.oss-cn-shenzhen.aliyuncs.com/', //上传的地址  后面一定要加/,
    ajaxSettings:{headers:{
        'Access-Control-Allow-Origin': '*',
    }},
    uploadExtraData: function () {return {...OSSobj}},
    removeFromPreviewOnError: true,//是否移除校验文件失败的文件
    allowedFileExtensions: allowedFileExtensions,//接收的文件后缀
    uploadAsync: true, //是否允许异步上传
    showUpload: true, //是否显示上传按钮
    showCaption: false,//是否显示标题
    browseClass: "btn btn-primary", //按钮样式
    maxFileCount: 1, //表示允许同时上传的最大文件个数
    enctype: 'multipart/form-data',
    previewFileIcon: "<i class='glyphicon glyphicon-king'></i>",
    msgFilesTooMany: "选择上传的文件数量({n}) 超过允许的最大数值{m}!",
});
踩坑地方

如果页面报错
The bucket POST must contain the specified ‘key’. If it is specified, please check the order of the fields

在这里插入图片描述

那是因为key值必须在file文件前面,这里我是通过修改源码解决。
修改好的排序
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
bootstrap-fileinput是一种基于Bootstrap框架的文件上传插件,它提供了简单易用的界面和丰富的功能。 首先,bootstrap-fileinput具有美观的样式,与Bootstrap的整体风格相匹配。它使用了一系列清晰、直观的图标和按钮,让用户可以方便地浏览、选择和上传文件。 其次,bootstrap-fileinput还支持多种文件展示方式。它可以以列表或网格的形式显示文件预览,在列表模式下可以显示文件的名称、大小、类型等信息,而在网格模式下则可以直观地展示文件的缩略图。这种多样化的展示方式可以让用户根据自己的需求选择最适合的视觉效果。 此外,bootstrap-fileinput还具有丰富的功能。它支持文件的多选和拖拽上传,可以通过设置参数来限制文件的大小、类型和数量等。它还提供了预览、删除和重新选择文件的功能,让用户可以在上传之前查看文件的内容和清理不需要的文件。此外,它还可以通过AJAX异步上传文件,实现无刷新上传的效果。 最后,bootstrap-fileinput还提供了一些额外的扩展功能。例如,它可以通过设置参数来自定义上传按钮的样式和文本,可以根据不同的需求注册和调用一系列的回调函数,以便实现更加灵活的操作。 总之,bootstrap-fileinput是一个功能强大、界面美观的文件上传插件,它可以为用户提供便捷的文件管理和上传体验。不仅仅可以用于网站开发,也可以用在各种基于Bootstrap框架的Web应用中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值