web-dev-qa-db-fra.com

Convertir l'image en chaîne de base 64 avec Laravel

Je veux convertir une image en base 64 avec Laravel. J'obtiens l'image à partir d'un formulaire. J'ai essayé ceci dans mon contrôleur:

public function newEvent(Request $request){
    $parametre =$request->all();

    if ($request->hasFile('image')) {
        if($request->file('image')->isValid()) {
            try {
                $file = $request->file('image');
                $image = base64_encode($file);
                echo $image;


            } catch (FileNotFoundException $e) {
                echo "catch";

            }
        }
    }

Je reçois ceci uniquement:

L3RtcC9waHBya0NqQlQ =

6
Pondikpa Tchabao

La $request->file() de Laravel ne renvoie pas le contenu réel du fichier. Elle renvoie une instance de la classe UploadedFile-.

Vous devez charger le fichier réel pour pouvoir le convertir:

$image = base64_encode(file_get_contents($request->file('image')->pat‌​h()));
11
Magnus Eriksson

Cela a fonctionné pour moi de la manière suivante:

$image = base64_encode(file_get_contents($request->file('image')));

J'ai éliminé cette partie ->pat‌​h();

7
C47

$image = base64_encode(file_get_contents($request->file('image')));

Fonctionne aussi pour moi.

0
Rick Holtman