/** * 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()); }
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(); }