FileHelpers.php
TLDR
This file is a trait that provides some helper methods for working with files in the Illuminate\Http namespace.
Methods
path
This method returns the fully qualified path to the file.
extension
This method returns the extension of the file.
hashName
This method generates a unique filename for the file, which includes a random hash and the file extension.
dimensions
This method returns the dimensions of an image file if applicable.
<?php
namespace Illuminate\Http;
use Illuminate\Support\Str;
trait FileHelpers
{
/**
* The cache copy of the file's hash name.
*
* @var string
*/
protected $hashName = null;
/**
* Get the fully qualified path to the file.
*
* @return string
*/
public function path()
{
return $this->getRealPath();
}
/**
* Get the file's extension.
*
* @return string
*/
public function extension()
{
return $this->guessExtension();
}
/**
* Get a filename for the file.
*
* @param string|null $path
* @return string
*/
public function hashName($path = null)
{
if ($path) {
$path = rtrim($path, '/').'/';
}
$hash = $this->hashName ?: $this->hashName = Str::random(40);
if ($extension = $this->guessExtension()) {
$extension = '.'.$extension;
}
return $path.$hash.$extension;
}
/**
* Get the dimensions of the image (if applicable).
*
* @return array|null
*/
public function dimensions()
{
return @getimagesize($this->getRealPath());
}
}