예제 #1
0
 /**
  * Take care of updating file in the database and file storage
  *
  * @param FileCreateOrUpdateEvent $event Image event
  *
  * @throws \Thelia\Exception\FileException
  */
 public function updateFile(FileCreateOrUpdateEvent $event)
 {
     // Copy and save file
     if ($event->getUploadedFile()) {
         // Remove old picture file from file storage
         $url = $event->getModel()->getUploadDir() . '/' . $event->getOldModel()->getFile();
         unlink(str_replace('..', '', $url));
         $newUploadedFile = $this->fileManager->copyUploadedFile($event->getModel(), $event->getUploadedFile());
         $event->setUploadedFile($newUploadedFile);
     }
     // Update image modifications
     $event->getModel()->save();
     $event->setModel($event->getModel());
 }
예제 #2
0
 public function dotTestDocumentUpload($model, $type)
 {
     $old_file = $model->getFile();
     $model->setFile(null)->save();
     $testFile = __DIR__ . DS . 'fixtures' . DS . 'move-test.txt';
     $targetFile = THELIA_LOCAL_DIR . 'media' . DS . 'documents' . DS . $type . DS . "original-" . $model->getId() . ".txt";
     @unlink($testFile);
     @unlink($targetFile);
     copy(__DIR__ . DS . 'fixtures' . DS . 'test.txt', $testFile);
     $uploadedFile = new UploadedFile($testFile, 'original.txt', 'plain/text', filesize($testFile), UPLOAD_ERR_OK, true);
     $file = $this->fileManager->copyUploadedFile($model, $uploadedFile);
     $this->assertEquals("" . $file, $targetFile);
     $this->assertEquals(basename($targetFile), $model->getFile());
     $this->assertFileExists($targetFile);
     @unlink($targetFile);
     @unlink($testFile);
     $model->setFile($old_file)->save();
 }