2017-02-08 4 views
1

wie kann ich image serverseite speichern ich habe diesen code aber aus irgendeinem grund wird das bild das ich auf den server hochlade, als text/x-generic gespeichert. Was kann ich tun, um das zu beheben?wie man base64 image serverseite speichert

<?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, wo hast du 'text/x-generic' gefunden? –

+0

in meinem IMG-Ordner – xcalliber

+0

Geben Sie text/x-generic – xcalliber

Antwort

1

benutzte ich diese Funktion base64 Bild zu speichern und es funktioniert gut. Versuchen Sie dies-

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); 


} 

Ich hoffe, dies wird Ihnen helfen.

+0

wo wäre der Ordnername? – xcalliber

+0

$ imageDir, können Sie hier Ihren Dateipfad einstellen. –

+0

doest Arbeit ich kann nicht einmal einen Namen bekommen – xcalliber