55namespace App \Controller \Upload ;
66
77use App \Factory \Exception \Client404NotFoundExceptionFactory ;
8+ use App \Factory \Response \NoContentResponseFactory ;
89use App \Helper \Regex ;
910use App \Response \NoContentResponse ;
1011use App \Security \AuthProvider ;
@@ -21,8 +22,8 @@ class HeadUploadController extends AbstractController
2122{
2223 public function __construct (
2324 private AuthProvider $ authProvider ,
24- private EmberNexusConfiguration $ emberNexusConfiguration ,
2525 private ElementManager $ elementManager ,
26+ private NoContentResponseFactory $ noContentResponseFactory ,
2627 private Client404NotFoundExceptionFactory $ client404NotFoundExceptionFactory ,
2728 ) {
2829 }
@@ -40,10 +41,7 @@ public function headUpload(string $id): Response
4041 $ elementId = UuidV4::fromString ($ id );
4142 $ userId = $ this ->authProvider ->getUserId ();
4243
43- $ element = $ this ->elementManager ->getElement ($ elementId );
44- if (null === $ element ) {
45- throw $ this ->client404NotFoundExceptionFactory ->createFromTemplate ();
46- }
44+ $ element = $ this ->elementManager ->getElementOrFail ($ elementId );
4745
4846 try {
4947 $ uploadElement = UploadElement::createFromElement ($ element );
@@ -59,21 +57,6 @@ public function headUpload(string $id): Response
5957 throw $ this ->client404NotFoundExceptionFactory ->createFromTemplate ();
6058 }
6159
62- header (sprintf ('Upload-Complete: ?%s ' , $ uploadElement ->isUploadComplete () ? '1 ' : '0 ' ));
63- header (sprintf ('Upload-Offset: %d ' , $ uploadElement ->getUploadOffset ()));
64- $ uploadLength = $ uploadElement ->getUploadLength ();
65- if (null !== $ uploadLength ) {
66- header (sprintf ('Upload-Length: %d ' , $ uploadLength ));
67- }
68- header (sprintf (
69- 'Upload-Limit: max-age=%d, max-size=%d, min-append-size=%d, max-append-size=%d ' ,
70- $ this ->emberNexusConfiguration ->getFileUploadExpiresInSecondsAfterFirstRequest (),
71- $ this ->emberNexusConfiguration ->getFileMaxFileSizeInBytes (),
72- $ this ->emberNexusConfiguration ->getFileUploadMinChunkSizeInBytes (),
73- $ this ->emberNexusConfiguration ->getFileUploadMaxChunkSizeInBytes (),
74- ));
75- header ('Cache-Control: no-store ' );
76-
77- return new NoContentResponse ();
60+ return $ this ->noContentResponseFactory ->createNoContentResponseWithResumableUploadHeaders ($ uploadElement );
7861 }
7962}
0 commit comments