Viewing file: File.php (2.86 KB) -rwxrwxr-x Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace Illuminate\Http\Testing;
use Illuminate\Http\UploadedFile;
class File extends UploadedFile { /** * The name of the file. * * @var string */ public $name;
/** * The temporary file resource. * * @var resource */ public $tempFile;
/** * The "size" to report. * * @var int */ public $sizeToReport;
/** * The MIME type to report. * * @var string|null */ public $mimeTypeToReport;
/** * Create a new file instance. * * @param string $name * @param resource $tempFile * @return void */ public function __construct($name, $tempFile) { $this->name = $name; $this->tempFile = $tempFile;
parent::__construct( $this->tempFilePath(), $name, $this->getMimeType(), null, true ); }
/** * Create a new fake file. * * @param string $name * @param string|int $kilobytes * @return \Illuminate\Http\Testing\File */ public static function create($name, $kilobytes = 0) { return (new FileFactory)->create($name, $kilobytes); }
/** * Create a new fake file with content. * * @param string $name * @param string $content * @return \Illuminate\Http\Testing\File */ public static function createWithContent($name, $content) { return (new FileFactory)->createWithContent($name, $content); }
/** * Create a new fake image. * * @param string $name * @param int $width * @param int $height * @return \Illuminate\Http\Testing\File */ public static function image($name, $width = 10, $height = 10) { return (new FileFactory)->image($name, $width, $height); }
/** * Set the "size" of the file in kilobytes. * * @param int $kilobytes * @return $this */ public function size($kilobytes) { $this->sizeToReport = $kilobytes * 1024;
return $this; }
/** * Get the size of the file. * * @return int */ public function getSize(): int { return $this->sizeToReport ?: parent::getSize(); }
/** * Set the "MIME type" for the file. * * @param string $mimeType * @return $this */ public function mimeType($mimeType) { $this->mimeTypeToReport = $mimeType;
return $this; }
/** * Get the MIME type of the file. * * @return string */ public function getMimeType(): string { return $this->mimeTypeToReport ?: MimeType::from($this->name); }
/** * Get the path to the temporary file. * * @return string */ protected function tempFilePath() { return stream_get_meta_data($this->tempFile)['uri']; } }
|