解决7牛上传图片错误:error: "file exists"

使用qiniu-js前端通过token的形式上传图片时,接口报错:error: "file exists"

上传域名:https://upload.qiniup.com/

方法:Qiniu.upload(file, key, token, putExtra, config);

问题就出在这个key这里,如下例子,把key设置为文件名字,很容易有重复的问题。但有疑惑的是并不是同名就一定会出现file exists问题,我上传同样一个png文件,多次上传都可以成功,可能是本身7牛自己会重新计算得出一个新hash值。

        const token = data.data.token;
        const key = file.name || null; // 上传后文件资源名以设置的 key 为主,如果 key 为 null 或者 undefined,则文件资源名会以 hash 值作为资源名。
        const config = {};
        const putExtra = {
          fname: '', //文件原文件名
          params: {}, //用来放置自定义变量
          mimeType: null, //用来限制上传文件类型,为 null 时表示不对文件类型限制;限制类型放到数组里: ["image/png", "image/jpeg", "image/gif"]
        };
        const observable = Qiniu.upload(file, key, token, putExtra, config);

        observable.subscribe({...})

解决方法:把key设置为null就ok了

key = null // 上传后文件资源名以设置的 key 为主,如果 key 为 null 或者 undefined,则文件资源名会以 hash 值作为资源名。

参考:

如何避免用户上传同名文件 https://developer.qiniu.com/kodo/kb/1365/how-to-avoid-the-users-to-upload-files-with-the-same-key

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值