【问题标题】:How to get the size of the image?如何获取图像的大小?
【发布时间】:2020-02-14 01:56:02
【问题描述】:

我有这个数组想要获取图像的大小:

$main_image = $product->images()->where('main_image', 1)->first();

if($main_image){
    $url = asset('uploads/products/'. $main_image['image']);

    $image[] = [
        "name"  => $main_image->image,
        "type"  => FileUploader::mime_content_type($main_image->image_path),

        "size"  => filesize($url),

        "file"  => $main_image->image_path,
        "local" => $main_image->image_path,
    ];
}

我收到了这个错误:

filesize(): stat failed for http://myapp.test/uploads/products/83QhiRFarGpV.jpeg 

连我的图片都存在于文件夹中!:

我尝试了one 中的所有选项,但仍然出现同样的错误!

【问题讨论】:

  • filesize('uploads/products/'. $main_image['image']);
  • @RiggsFolly 非常感谢,为什么我的代码不起作用?
  • 你是说把代码改成"size" => filesize('uploads/products/'. $main_image['image']),还是不行?
  • @RiggsFolly 不,工作得很好!我的意思是为什么我的关闭不起作用!

标签: php laravel


【解决方案1】:

您的代码使用asset() 生成$url

http://myapp.test/uploads/products/83QhiRFarGpV.jpeg

filesize() 函数适用于本地文件,而不是 URL。

filesize($main_image->image_path) 应该可以工作,因为您在上面的行中使用它来获取文件类型。

您可能还有另一个问题

   "file"  => $main_image->image_path,
   "local" => $main_image->image_path,

您可能希望文件改为$url

【讨论】:

  • 非常感谢您像@RiggsFolly 提到的那样工作! filesize('uploads/products/'.$main_image['image']);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-10
  • 2011-09-09
  • 2012-03-08
  • 2012-08-28
  • 1970-01-01
相关资源
最近更新 更多