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(); }}這在將上傳的文件傳遞給它時有效。但我想重用代碼來處理存儲在文件系統(tǒng)上的圖像。例如,我有一個占位符圖像,它存儲在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條經(jīng)驗 獲得超13個贊
如果ImageUpload
是您不想重寫的第三方庫類,我會在這里看到 2 個選項:
始終檢查您是否正在傳遞
UploadedFile
to 的實例ImageUpload->upload()
。將其轉(zhuǎn)換為UploadedFile
ifstring
。在您應(yīng)該執(zhí)行選項 1 中描述的相同操作的地方擴展
ImageUpload
類和覆蓋upload
函數(shù)。
- 1 回答
- 0 關(guān)注
- 254 瀏覽
添加回答
舉報
0/150
提交
取消