SonataAdminBundleでファイルアップロード
symfonyのフォームタイプの一つ、 *file* が普通に使えるので、そちらを利用
参考記事
但し、一番目のリンク記事の方法では、 Product クラスの以下のコードの部分で、Webからのルートパスを返してしまう不具合があった。
public function saveFile($product) { $basepath = $this->getRequest()->getBasePath();//これ $product->upload($basepath); }
なので、二番目のリンク記事の
protected function getUploadRootDir() { // アップロードされたファイルを保存する場所への絶対パス return __DIR__.'/../../../../web/'.$this->getUploadDir(); }
こちらを Product クラスの getUploadRootDir() メソッドに入れてやることで、webディレクトリ内に持っていくことができる。