2016-09-29 3 views
0

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

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

Сначала вам было лучше [прочитать руководство по загрузке файла] (http://php.net/manual/en/features.file-upload.php), так как вы сделали немало основных ошибок, обрабатывающих массив $ _FILES или, скорее, НЕ обрабатывает массив $ _FILES – RiggsFolly

+0

@RiggsFolly Я думаю, что мой вопрос неполный, мои изображения поступают из dom (data: image), затем я его декодирую base64 –

+0

, ваш 'pathinfo()' имеет полную остановку вместо запятой, разделяющей аргументы функции. – Scuzzy

ответ

1

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

$file = pathinfo($staticName . PATHINFO_EXTENSION);

изменения

$file = pathinfo($staticName , PATHINFO_EXTENSION);

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