コード例 #1
0
 protected function saveAlbumImages(&$albumModel, $xml)
 {
     $values = (array) json_decode(json_encode($xml));
     if (!empty($values) && !empty($values["ImageSet"]) && !empty($values["ImageSet"]->LargeImage) && !empty($values["ImageSet"]->LargeImage->URL)) {
         $albumModel->setThumbnailUrl(strval($values["ImageSet"]->LargeImage->URL));
         $filename = explode('/', $albumModel->getThumbnailUrl());
         $filename = $filename[sizeof($filename) - 1];
         $fileDir = $this->container->getParameter('kernel.root_dir') . '/../web/uploads/images/albums/';
         if (!file_exists($fileDir)) {
             if (!mkdir($fileDir, 0770, true)) {
                 return;
             }
         }
         $filePath = $fileDir . $filename;
         try {
             $ch = curl_init($albumModel->getThumbnailUrl());
             $fp = fopen($filePath, "w");
             curl_setopt($ch, CURLOPT_FILE, $fp);
             curl_setopt($ch, CURLOPT_HEADER, 0);
             curl_exec($ch);
             curl_close($ch);
             fclose($fp);
             $media = new \Application\Sonata\MediaBundle\Entity\Media();
             $media->setBinaryContent($filePath);
             $media->setContext('default');
             $media->setProviderName('sonata.media.provider.image');
             $albumModel->setImage($media);
         } catch (\Exception $e) {
         }
     }
 }