0
  1. 七牛对象存储jssdk,配置的最大文件体积是100mb,但是上传25mb的图片是却报413?
  2. 线上运行相当长一段时间,大概半年,这是第一例出现413的
function sendMyProduct(upToken, name, container, callback) {
  var uploader = Qiniu.uploader({
    runtimes: 'html5,flash,html4', // 上传模式,依次退化
    browse_button: name, // 上传选择的点选按钮,**必需**
    uptoken: upToken,
    unique_names: true,
    domain: 'http://xxx.xxxx.com/',
    container: container, // 上传区域DOM ID,默认是browser_button的父元素,
    max_file_size: '100mb', // 最大文件体积限制
    flash_swf_url: 'js/plupload/Moxie.swf', // 引入flash,相对路径
    max_retries: 3, // 上传失败最大重试次数
    dragdrop: true, // 开启可拖曳上传
    drop_element: container, // 拖曳上传区域元素的ID,拖曳文件或文件夹后可触发上传
    chunk_size: '4mb', // 分块上传时,每片的体积
    auto_start: true, // 选择文件后自动上传,若关闭需要自己绑定事件触发上传
    multi_selection: false, // 是否可以一次选择多张
    init: {
      'FilesAdded': function(up, files) {
        plupload.each(files, function(file) {
        })
      },
      'BeforeUpload': function(up, file) {
      },
      'UploadProgress': function(up, file) {
        let progressBar = $('#progressBar')
        if (file.percent > 0 && file.percent < 100) {
          progressBar.text("上传中" + file.percent + "%")
        } else {
          progressBar.text('')
        }
      },
      'FileUploaded': function(up, file, info) {
        callback(up, file, info)
      },
      'Error': function(up, err, errTip) {
        alert(errTip)
      },
      'UploadComplete': function() {
        // 清除自动生成的container。
        const elements = $('.moxie-shim')
        const len = elements.length
        const removeElements = elements.slice(0, len - 1)
        removeElements.remove()
      },
      'Key': function(up, file) {
        var key = ''
        return key
      }
    }
  })
}
  1. 报错信息和network面板

clipboard.png

  1. 如果此版本无较好的解决方法,打算升级一下sdk。抛弃这种上传的方式使用下述方法重写
var observable = qiniu.upload(file, key, token, putExtra, config)
var subscription = observable.subscribe(observer) // 上传开始
// or
var subscription = observable.subscribe(next, error, complete) // 这样传参形式也可以
subscription.unsubscribe() // 上传取消
2019-05-06 提问

1 个回答

0

这个报错一般是后端的token里policy的限制,可以贴一下报错时的上传token。

推广链接