Laravel 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.
1 回答
烙印99
TA贡献1829条经验 获得超13个赞
如果ImageUpload
是您不想重写的第三方库类,我会在这里看到 2 个选项:
始终检查您是否正在传递
UploadedFile
to 的实例ImageUpload->upload()
。将其转换为UploadedFile
ifstring
。在您应该执行选项 1 中描述的相同操作的地方扩展
ImageUpload
类和覆盖upload
函数。
- 1 回答
- 0 关注
- 240 浏览
添加回答
举报
0/150
提交
取消