2017-10-12 30 views
0

我上傳圖像,並試圖在不保存圖像的情況下獲取圖像的哈希值。Laravel 5獲取上傳圖像的哈希值

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

      $hash = file_get_contents($fname)); 

      dd($hash); 
     } 
    } 
} 

我不斷收到此錯誤:

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

任何人都知道我怎樣才能解決這個問題?

回答

1

您正試圖單獨獲取文件名的文件內容,其中不包括該文件的路徑。您需要包括完整的文件路徑:

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

不過,請注意您所加載的實際文件內容,而不是生成一個散列。如果它實際上是你想要一個哈希,你可以這樣做:

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

當然也有other hashing options

+0

這個'$ content'是一個哈希字符串還是什麼,因爲我不能dd,這個代碼發生在ajax調用 – Chris

+0

我更新了我的答案,更多的信息。 –

+0

順便說一句,如果你只是在調試,你可以通過AJAX調用'dd()'來查看結果。使用您的瀏覽器工具,點擊網絡標籤,然後點擊AJAX請求。您將能夠看到請求本身,包括參數和響應。 –