массивы — PHP: как правильно использовать pathinfo после использования base64 декодирования

Я получаю ошибку Array to string conversion в pathinfo после использования base64 декодирования изображения. Ошибка при попытке поместить мои файлы в директорию. Мне нужно сохранить имя изображения.

Кстати мои файлы изображений пришли из 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

0

Решение

Существует синтаксическая проблема, которую парсер не обнаружил бы.

$file = pathinfo( $staticName . PATHINFO_EXTENSION);

изменить на

$file = pathinfo( $staticName , PATHINFO_EXTENSION);

однако ваше следующее использование $file кажется неверным, создавая искаженное имя файла для file_put_contents() вызов. Указав PATHINFO_EXTENSION вы выбираете только расширение от
имя файла, который, кажется, не существует.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]