1 | <?php |
||
14 | class Receiver |
||
15 | { |
||
16 | /** |
||
17 | * $api. |
||
18 | * |
||
19 | * @var \Recca0120\Upload\Contracts\Api |
||
20 | */ |
||
21 | protected $api; |
||
22 | |||
23 | /** |
||
24 | * $url. |
||
25 | * |
||
26 | * @var string |
||
27 | */ |
||
28 | protected $url; |
||
29 | |||
30 | /** |
||
31 | * __construct. |
||
32 | * |
||
33 | * @param \Recca0120\Upload\Contracts\Api $api |
||
34 | */ |
||
35 | 6 | public function __construct(Api $api) |
|
39 | |||
40 | /** |
||
41 | * setUrl. |
||
42 | * |
||
43 | * @param string $url |
||
44 | * @return $this |
||
45 | */ |
||
46 | public function setUrl($url) |
||
52 | |||
53 | /** |
||
54 | * receive. |
||
55 | * |
||
56 | * @param string $inputName |
||
57 | * @param \Closure $callback |
||
58 | * @return \Symfony\Component\HttpFoundation\Response |
||
59 | */ |
||
60 | 3 | public function receive($inputName = 'file', Closure $callback = null) |
|
76 | |||
77 | /** |
||
78 | * callback. |
||
79 | * |
||
80 | * @return \Closure |
||
81 | */ |
||
82 | protected function callback() |
||
83 | { |
||
84 | 1 | return function (UploadedFile $uploadedFile, $path, $domain) { |
|
85 | 1 | $clientOriginalName = $uploadedFile->getClientOriginalName(); |
|
86 | 1 | $clientOriginalExtension = strtolower($uploadedFile->getClientOriginalExtension()); |
|
87 | 1 | $basename = pathinfo($uploadedFile->getBasename(), PATHINFO_FILENAME); |
|
88 | 1 | $filename = $basename.'.'.$clientOriginalExtension; |
|
89 | $response = [ |
||
90 | 1 | 'name' => $clientOriginalName, |
|
91 | 1 | 'tmp_name' => $path.$filename, |
|
92 | 1 | 'type' => $uploadedFile->getMimeType(), |
|
93 | 1 | 'size' => $uploadedFile->getSize(), |
|
94 | 1 | 'url' => $domain.$path.$filename, |
|
95 | 1 | ]; |
|
96 | 1 | $uploadedFile->move($path, $filename); |
|
97 | |||
98 | return new JsonResponse($response); |
||
99 | 1 | }; |
|
100 | } |
||
101 | |||
102 | /** |
||
103 | * factory. |
||
104 | * |
||
105 | * @param array $config |
||
106 | * @param string $class |
||
107 | * @return \Recca0120\Upload\Contracts\Api |
||
108 | */ |
||
109 | 1 | public static function factory($config = [], $class = FileAPI::class) |
|
118 | } |
||
119 |