2017-02-08 2 views
1

Как я могу сохранить сторону сервера изображений У меня есть этот код, но по какой-то причине изображение, которое я загружаю на сервер, сохраняется как text/x-generic. что я могу сделать, чтобы исправить это?Как сохранить base64 image server side

<?php 
 

 
    function base64_to_image($base64_string) { 
 

 
     $data = explode(',', $base64_string); 
 
     $ext = ""; 
 
     switch ($data[0]) { 
 
      case "data:image/png;base64"; 
 
       $ext = "png"; 
 
       break; 
 
      case "data:image/jpg;base64"; 
 
       $ext = "jpg"; 
 
       break; 
 
      case "data:image/jpeg;base64"; 
 
       $ext = "jpg"; 
 
       break; 
 
      case "data:image/gif;base64"; 
 
       $ext = "gif"; 
 
       break; 
 
     } 
 

 
     $milli = round(microtime(true) * 1000); 
 

 
     $output_file = "img/" . date('Y-m-d_H:i:s') . "." . $milli . "." . $ext; 
 
     $ifp = fopen($output_file, "wb"); 
 

 
    
 
     fwrite($ifp, base64_decode($data[1])); 
 
     fclose($ifp); 
 

 
     return $ifp; 
 

 
    } 
 

 
    $file = base64_to_image($_POST['file']); 
 
    var_dump($file); 
 
?>

+0

umm, где вы нашли 'text/x-generic'? –

+0

в моей папке img – xcalliber

+0

Тип text/x-generic – xcalliber

ответ

1

Я использовал эту функцию, чтобы сохранить base64 изображение, и это работает прекрасно. Попробуйте это?

function saveBase64ImagePng($base64Image, $imageDir) 
{ 
    //set name of the image file 

    $fileName = 'test.png'; 

    $base64Image = trim($base64Image); 
    $base64Image = str_replace('data:image/png;base64,', '', $base64Image); 
    $base64Image = str_replace('data:image/jpg;base64,', '', $base64Image); 
    $base64Image = str_replace('data:image/jpeg;base64,', '', $base64Image); 
    $base64Image = str_replace('data:image/gif;base64,', '', $base64Image); 
    $base64Image = str_replace(' ', '+', $base64Image); 

    $imageData = base64_decode($base64Image); 
    //Set image whole path here 
    $filePath = $imageDir . $fileName; 


    file_put_contents($filePath, $imageData); 


} 

Надеюсь, это вам поможет.

+0

где будет имя папки? – xcalliber

+0

$ imageDir, здесь вы можете указать путь к файлу. –

+0

doest work i can not даже получить имя – xcalliber