用七牛官方的代码上传图片,为什么提示file exists

我用七牛官方提供的上传代码做了一个上传程序,准备上传图片。图片名称是一样的,但是图片内容不同,在上传的时候,提示我图片已经存在。这是怎么回事,不是可以覆盖吗。?
以下是代码:

$key1[0] ='full.png';
$key1[1] ='medium.png'; 
$bucket = "img-i";

$file[0]='full.png'; //准备上传的图片
$file[1]='medium.png'; //准备上传的图片    
Qiniu_SetKeys($accessKey1, $secretKey1);
$putPolicy = new Qiniu_RS_PutPolicy($bucket);
$upToken = $putPolicy->Token(null);
$putExtra = new Qiniu_PutExtra();
$putExtra->Crc32 = 1;

for($i_qiniu=0;$i_qiniu<2;$i_qiniu++){

list($ret, $err) = Qiniu_PutFile($upToken, $key1[$i_qiniu], $file[$i_qiniu], $putExtra);
echo " $i_qiniu ====> Qiniu_PutFile result: <br />\n";
if ($err !== null) {
    var_dump($err);
} else {
    var_dump($ret);
}

}

以下是反馈的信息:

0 ====> Qiniu_PutFile result: 

object(Qiniu_Error)#26 (4) {
  ["Err"]=>
  string(11) "file exists"
  ["Reqid"]=>
  NULL
  ["Details"]=>
  NULL
  ["Code"]=>
  int(614)
}
 1 ====> Qiniu_PutFile result: 

object(Qiniu_Error)#27 (4) {
  ["Err"]=>
  string(11) "file exists"
  ["Reqid"]=>
  NULL
  ["Details"]=>
  NULL
  ["Code"]=>
  int(614)
}
阅读 11.2k
3 个回答

没错确实是。分享一下我的代码吧。

//-----------------------------------------上传BEGIN
// $key1为上传文件所用的名称,$file1为文件在服务器上的位置。
$key1[0] = 'full.jpg' ;
$key1[1] = 'large.jpg' ;
$key1[2] = 'medium2.jpg' ;
$key1[3] = 'medium.jpg' ;
$key1[4] = 'small.jpg' ;

$file1[0] = 'full.jpg' ;
$file1[1] = 'large.jpg' ;
$file1[2] = 'medium2.jpg' ; 
$file1[3] = 'medium.jpg' ;
$file1[4] = 'small.jpg' ;   

for($i_qiniu=0;$i_qiniu<5;$i_qiniu++){  
$key=$key1[$i_qiniu] ;
$bucket = "img-i:{$key}" ;
Qiniu_SetKeys($accessKey1, $secretKey1) ;
$putPolicy = new Qiniu_RS_PutPolicy($bucket) ;
$upToken = $putPolicy->Token(null) ;
$putExtra = new Qiniu_PutExtra() ;
$putExtra->Crc32 = 1 ;  
$file = $file1[$i_qiniu] ;              
list($ret, $err) = Qiniu_PutFile($upToken, $key, $file, $putExtra);
echo " $i_qiniu ====> Qiniu_PutFile result: <br />\n";
if ($err !== null) {
    var_dump($err);
} else {
    var_dump($ret);     
// 获取上传后的文件信息
$client = new Qiniu_MacHttpClient(null);
list($ret1, $err1) = Qiniu_RS_Stat($client, 'img-i', $key);
echo " $i_qiniu ====> Qiniu_RS_Stat result: \n";
if ($err1 !== null) {
    var_dump($err1);
} else {
    var_dump($ret1);
}   
}
}

formData.append('key', fileToUpload.name); //去掉这行代码就可以了。这样改参数会自动使用七牛云自带的hash 值