2017-10-12 2 views
0

je télécharger une image et je suis en train de faire le hachage de l'image dans une variable sans enregistrer les images.Laravel 5 obtenir le hachage d'une image téléchargée

foreach($request->only('photos') as $files){ 
    foreach ($files as $file) { 
     if(is_file($file)) { 
      $fname = $file->getClientOriginalName(); 

      $hash = file_get_contents($fname)); 

      dd($hash); 
     } 
    } 
} 

Je continue à obtenir cette erreur:

"file_get_contents(1.jpg): failed to open stream: No such file or directory"

Tout le monde sait comment je peux résoudre ce problème?

Répondre

1

Vous essayez d'obtenir le contenu du fichier du nom de fichier seul, qui ne comprend pas le chemin du fichier. Vous devez inclure le chemin complet du fichier:

$content = file_get_contents($file->path()); 
dd($content); 

Notez cependant que vous chargez le contenu du fichier réel, pas générer un hachage. S'il est en fait un hachage que vous voulez, vous pouvez faire quelque chose comme:

$hash = md5_file($file->path()); 

Bien sûr il y a other hashing options.

+0

sera cette '$ content' être une chaîne de hachage ou exactement ce que parce que je ne peux pas dd, ce code se passe dans un appel ajax – Chris

+0

Je mis à jour ma réponse avec plus d'informations. –

+0

BTW si vous ne faites que déboguer, vous pouvez 'dd()' dans un appel AJAX et voir les résultats. Utilisez les outils de votre navigateur, cliquez sur l'onglet Réseau et cliquez sur la requête AJAX. Vous serez en mesure de voir la demande elle-même, y compris les paramètres, et la réponse. –