外部URLから画像を取得して製品画像として登録したい。file_get_content()
で画像を取得することにした。
Admin/ProductController.php
のadd_image()
とedit()
を参考に進める。
Admin/ProductController.php
217行目付近では、画像データがPOSTされてきて、UploadedFileEntity
の一つとして取得される。
$images = $request->files->get('admin_product');
しかしfile_get_contents()
で持って来た画像はUploadFileEntityではないので、getMimeType()
やgetClientOriginalExtension()
メソッドが使えない。
【PHP】画像ファイルの種類(拡張子やMIMEタイプ)を取得する方法 – ysklog
とりあえず、こういうやり方で代用することにした。
Symfony2のEntityに登録したい
file_put_contents()
で画像データを保存して、new File()
に渡す。
file_put_contents($app['config']['image_temp_realdir'].'/'.$filename, $image); //一時ファイル書き込み $file = new File($app['config']['image_temp_realdir'].'/'.$filename);//File Entityとして登録
あと些細な問題はいくつかあったが、最終的にはこれで無事登録された。