常见问题

1. 点击设定的上传按钮无效

在配置七牛的函数中

    browse_button: 'upload_file', // 上传选择的点选按钮,必需
    container: 'upload_file', // 上传区域DOM ID,默认是browser_button的父元素
    drop_element: 'upload_file', // 拖曳上传区域元素的ID,拖曳文件或文件夹后可触发上传

在这主要设置按钮区域的配置中...

如果browse_buttoncontainer设置成一样...则无法点击..

所以建议是container不像折腾的话就不写,默认指定到上一个父元素

2. 上传文件名为空

一开始传一张照片上去

七牛云内容管理里查看该上传的图片没有名字

然后再上传一张,就提示614错误 该文件已经存在了

后面是发现配置对象中的save_key为false,所以导致我上传时候附带的key为空,如果更改为true,就自动获取文件名称.

当save_key为true,则命名为随机的hash,永不会重复

看看save_key的说明

save_key: true, // 默认false。若在服务端生成uptoken的上传策略中指定了sava_key,则开启,SDK在前端将不对key进行任何处理

3. 设置uptoken_url时,请求错误

显示的错误是

XMLHttpRequest cannot load 指定的url. Request header field If-Modified-Since is not allowed by Access-Control-Allow-Headers in preflight response.

看看看qiniu.js的源码,有一段


var getUpToken = function() {
    if (!op.uptoken) {
        // TODO: use mOxie
        var ajax = that.createAjax();
        ajax.open('GET', that.uptoken_url, true);
        ajax.setRequestHeader("If-Modified-Since", "0"); //注意这里
        ajax.onreadystatechange = function() {
            if (ajax.readyState === 4 && ajax.status === 200) {
                var res = that.parseJSON(ajax.responseText);
                that.token = res.uptoken;
            }
        };
        ajax.send();
    } else {
        that.token = op.uptoken;
    }
};

所以我在apache中设置

<Directory />
  ...
  Header set Access-Control-Allow-Headers If-Modified-Since
  ...
</Directory>

这里如果设置 Header set Access-Control-Allow-Headers *不行 ...不知道为啥..

4. 设置uptoken_url,返回的数据格式

这种在七牛配置对象中设置了uptoken_url请求token的话

默认是有格式限定的,看源代码

 ajax.onreadystatechange = function() {
      if (ajax.readyState === 4 && ajax.status === 200) {
          var res = that.parseJSON(ajax.responseText);
          that.token = res.uptoken;
      }
  };

返回的token需要时JSON格式的: {"uptoken": 具体的token}但是文档并没有说

© 404mzk all right reserved,powered by Gitbookhttp://blog.404mzk.com 该文件修订时间: 2016-12-12 22:55:35

results matching ""

    No results matching ""