2017-09-04 4 views
0

Je auj pour l'image de téléchargement en base64:file_put_contents (...): failed to open stream: Est-ce un répertoire

public function upload(UploadImageRequest $request) { 
    $data = (\Request::input('image')); 

    $decode = base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $data)); 
    $info = @getimagesizefromstring($decode); 
    $extn = image_type_to_extension($info[2]); 
    if ($extn ==".png"){ 
     $fullName = md5(time().uniqid()).$extn; 
     Storage::disk('public')->put('images/',$fullName, $decode); 

     $image = Image::make(); 

     $image->url = Storage::url($fullName); 
     $image->saveOrFail(); 

     return Response::json($image, ResponseHttp::HTTP_CREATED); 
    } 

    else {dd(1);} 
} 

J'essaie de sauver mon image publique/image/répertoire, mais a échoué.

ERREUR:

(1/1) ErrorException 
file_put_contents(/home/artem/PhpstormProjects/thefeedfeed-api/storage/app/public/images): failed to open stream: Is a directory 
+1

Je pense que le problème de permission dans votre répertoire !! Pouvez-vous s'il vous plaît montrer votre erreur exacte –

+0

mettre à jour le message et ajouter l'erreur – katedega

+1

* mettre à jour le message et ajouter l'erreur * - @katedega mais c'est votre question? : O – Script47

Répondre

0

La ligne

Storage::disk('public')->put('images/',$fullName, $decode); 

devrait être

Storage::disk('public')->put('images/'.$fullName, $decode); 

Vous fournissez trois arguments - le répertoire, le nom du fichier et du contenu. Cette méthode doit prendre deux arguments, le chemin complet du fichier (c'est-à-dire le répertoire et le nom du fichier) et le contenu. Vous devez concaténer les deux premiers arguments - il suffit de changer , à .