Ларавел 5.7.У меня есть класс, который я использую для обработки загрузки изображений:
use Intervention\Image\Facades\Image as ImageHandler;
class ImageUpload
{
/**
* Upload an image to the public folder
*
* @param \Illuminate\Http\UploadedFile $imageFile
* @return void
*/
public function upload($imageFile)
{
$this->extension = $imageFile->extension();
$this->filename = $this->getHashedFilename($imageFile);
$this->originalImage = ImageHandler::make($imageFile->getRealPath())->encode();
// Do other stuff...
$this->saveImage();
}
}
Это работает при передаче в него загруженного файла.Но я хотел бы повторно использовать код для работы с изображениями, хранящимися в файловой системе.Например, у меня есть изображение-заполнитель, которое хранится в resources/images
.Я хотел бы передать его методу upload
класса ImageUpload
выше.Но моя ссылка на файл, очевидно, является строкой, тогда как метод upload
ожидает экземпляр UploadedFile
.Поэтому, когда я пытаюсь сделать это:
class FooBar
{
public function savePlaceholder()
{
$placeholderImage = asset('images/test.png');
$uploadHandler = new ImageUpload();
$uploadHandler->upload($placeholderImage);
}
}
я получаю ошибку, потому что я передаю строку, а не экземпляр UploadedFile
.