2016-10-19 68 views
1

我有这样的功能:PHP删除图像编辑位置

function deleteImage($image){ 
    //$image is a varchar like 2016/10/example.jpg from MySQL 
    $myArray = explode('/', $image); 

    $result = $s3->deleteObject(array(
     'Bucket' => $bucket, 
     'Key' => 'uploads/avatars/'.$myArray[0].'/'.$myArray[1].'/xs-'.$myArray[2] 
    )); 
} 

基本上为$image = 2016/10/example.jpg

我需要删除位于

uploads/avatars/2016/10/xs-example.jpg 

像我想弄明白的问题几个小时,但它不工作,似乎无法调试。

+0

是否如果你工作只是硬编码你想要的路径,即''Key'=>'uploads/avatars/2016/10/xs-example.jpg'? – Phil

+0

@Phil是的,我做了,它的工作 – NineCattoRules

+0

你可以做一个var_dump($图像);并在这里粘贴结果? –

回答

3

我会去这样的事情

$key = sprintf('uploads/avatars/%s/xs-%s', 
     ltrim(dirname($image), '/'), basename($image)); 

ltrim可能是矫枉过正,但它只是在情况下,你$image变量开始用/

这应该处理任何路径深度。

1

你调用你的函数与数组作为参数,而不是deleteImage(array($verify['image']));你应该把它deleteImage($verify['image']);

+0

谢谢,还用'foreach($ image as $ name){$ result = $ s3-> deleteObject(array(... etc' – NineCattoRules