Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php
/*
* Copyright (C) 2015 IRSTEA
* All rights reserved.
*/
namespace Irstea\FileUploadBundle\Entity\Repository;
use Doctrine\ORM\EntityRepository;
use Gaufrette\Filesystem;
use Irstea\FileUploadBundle\Entity\UploadedFile;
use Irstea\FileUploadBundle\Service\FileManagerInterface;
/**
* Description of UploadedFileRepository
*
* @author Guillaume Perréal <guillaume.perreal@irstea.fr>
*/
class UploadedFileRepository extends EntityRepository implements FileManagerInterface
{
/**
*
* @var Filesystem
*/
protected $filesystem;
/**
*
* @param Filesystem $filesystem
*/
public function setFilesystem(Filesystem $filesystem)
{
$this->filesystem = $filesystem;
}
public function create($filename, $size, $mimeType, $lastModified)
{
$file = new UploadedFile();
$file
->setFilesystem($this->filesystem)
->setOriginalFilename($filename)
->setMetadata(
[
'original' => [
'filename' => $filename,
'size' => $size,
'mimeType' => $mimeType,
'lastModified' => $lastModified
]
]
);
$this->_em->persist($file);
$this->_em->flush();
return $file;
}
public function delete(UploadedFile $file)
{
$this->_em->remove($file);
$this->filesystem->delete($file->getPath());
}
public function get($id)
{
return $this->findById($id);
}
}