Php Laravel 5获取上传图像的哈希值

Php Laravel 5获取上传图像的哈希值,php,image,laravel,laravel-5,Php,Image,Laravel,Laravel 5,我上传了一张图片,我试图在一个变量中获取图片的哈希值,而不保存图片 foreach($request->only('photos') as $files){ foreach ($files as $file) { if(is_file($file)) { $fname = $file->getClientOriginalName(); $hash = file_get_contents($fname));

我上传了一张图片,我试图在一个变量中获取图片的哈希值,而不保存图片

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

            $hash = file_get_contents($fname));

            dd($hash);
        }
    }
}
我不断地发现这个错误:

“文件获取内容(1.jpg):无法打开流:没有此类文件或 目录“


有人知道我如何解决这个问题吗?

您正在尝试仅获取文件名的文件内容,其中不包括文件路径。您需要包含文件的完整路径:

$content = file_get_contents($file->path());
dd($content);
请注意,您正在加载实际的文件内容,而不是生成哈希。如果它实际上是您想要的哈希,您可以执行以下操作:

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

当然有。

您试图仅获取文件名的文件内容,其中不包括文件路径。您需要包含文件的完整路径:

$content = file_get_contents($file->path());
dd($content);
请注意,您正在加载实际的文件内容,而不是生成哈希。如果它实际上是您想要的哈希,您可以执行以下操作:

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

当然有。

这个
$content
是一个哈希字符串还是什么?因为我不能添加,这个代码发生在ajax调用中。如果您只是调试,您可以在ajax调用中添加
dd()
,并查看结果。使用浏览器工具,单击网络选项卡,然后单击AJAX请求。您将能够看到请求本身,包括参数和响应。是的,我知道,但由于某些原因,当我选择“预览”或“响应”时,我在我的“网络”选项卡中看不到任何内容,但这很好,我以其他方式进行了测试,它似乎可以工作,因此谢谢:)这
$content
是哈希字符串还是什么,因为我无法添加,此代码发生在ajax调用中。如果您只是在调试,您可以在ajax调用中查看结果。使用浏览器工具,单击网络选项卡,然后单击AJAX请求。您将能够看到请求本身,包括参数和响应。是的,我知道,但由于某些原因,当我选择“预览”或“响应”时,在我的“网络”选项卡中看不到任何内容,但很好,我测试了其他方面,它似乎可以工作,所以谢谢:)