PHP:如何在使用base64解码后正确使用pathinfo

时间:2016-09-29 08:39:00

标签: php arrays pathinfo

使用base64解码映像后,我在pathinfo收到错误Array to string conversion。尝试将我的文件放入diretory时出错。我需要保留图像的名称。

BTW我的图像文件来自js DOM

var formG = new FormData();
for(var i=0; i<imageTrust.length;i++){
    formG.append('file_multiImage[]', imageTrust[i]);
}


if(isset($_POST['file_multiImage'])){
    $multi_image =  $_POST['file_multiImage'];
    foreach ($multi_image as $key => $value) {
        $staticName = $event_id.'conNo'.$finalContestantNum;
        $data = str_replace('data:image/jpeg;base64,', '', $value);
        $data = str_replace(' ', '+', $data);
        $data = base64_decode($data);
        $file = pathinfo( $staticName . PATHINFO_EXTENSION); //Error occurs here
        file_put_contents($theDir.'/'. $file, $data);

    }
}

数组结果

Array(
       [0] => data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQA 
       [1] => data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAlgCWAAD
       [2] => data:image/jpeg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/7QC
)
//I did not just continue strings are too long

1 个答案:

答案 0 :(得分:1)

解析器无法检测到语法问题。

$file = pathinfo( $staticName . PATHINFO_EXTENSION);

更改为

$file = pathinfo( $staticName , PATHINFO_EXTENSION);

但是,您$file的下次使用似乎无效,为file_put_contents()调用创建格式错误的文件名。通过指定PATHINFO_EXTENSION,您只需从中选择扩展名  文件名,似乎不存在。