File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 66
77class UploadListener
88{
9- private $ uploadDirectory ;
10-
11- public function __construct ($ uploadDirectory )
12- {
13- $ this ->uploadDirectory = $ uploadDirectory ;
14- }
15-
169 public function onUpload (PostPersistEvent $ event )
1710 {
1811 $ response = $ event ->getResponse ();
19- //$response['file_path'] = $this->uploadDirectory . $event->getFile()->getFilename();
12+ $ uploadDirectory = $ event ->getConfig ()['storage ' ]['directory ' ];
13+
14+ $ fileBag = $ event ->getRequest ()->files ->all ();
15+ $ uploadFile = null ;
16+ array_walk_recursive ($ fileBag , function ($ item , $ key ) use (&$ uploadFile ) {
17+ if ($ item instanceof \Symfony \Component \HttpFoundation \File \UploadedFile) {
18+ $ uploadFile = $ item ;
19+ }
20+ });
2021 $ response ['status ' ] = 'success ' ;
2122 $ response ['files ' ] = array (
2223 array (
24+ 'originalName ' => $ uploadFile ->getClientOriginalName (),
2325 'name ' => $ event ->getFile ()->getFilename (),
24- 'url ' => $ this -> uploadDirectory . $ event ->getFile ()->getFilename ()
26+ 'url ' => $ uploadDirectory . ' / ' . $ event ->getFile ()->getFilename ()
2527 )
2628 );
2729 return $ response ;
Original file line number Diff line number Diff line change @@ -57,6 +57,13 @@ function (FormEvent $event) use ($options) {
5757 'mapped ' => false
5858 )
5959 );
60+ $ form ->getParent ()->add (
61+ $ form ->getConfig ()->getName () . 'OriginalName ' ,
62+ 'hidden ' ,
63+ array (
64+ 'mapped ' => false
65+ )
66+ );
6067 }
6168 );
6269 }
@@ -70,7 +77,9 @@ function (FormEvent $event) use ($options) {
7077 */
7178 public function buildView (FormView $ view , FormInterface $ form , array $ options )
7279 {
80+ $ view ->vars ['view_id_prefix ' ] = $ view ->parent ->vars ['id ' ] . '_ ' ;
7381 $ view ->vars ['largefile_field ' ] = $ form ->getConfig ()->getName () . 'Name ' ;
82+ $ view ->vars ['largefile_field_original ' ] = $ form ->getConfig ()->getName () . 'OriginalName ' ;
7483 $ view ->vars ['label ' ] = $ options ['label ' ];
7584 $ view ->vars ['largefile_media ' ] = $ options ['media ' ];
7685 $ view ->vars ['mimeTypesMessage ' ] = $ options ['mimeTypesMessage ' ];
Original file line number Diff line number Diff line change @@ -69,6 +69,7 @@ $builder
6969 'media' => 'video',
7070 'mimeTypesMessage' => "Upload only mp4",
7171 'maxSizeMessage' => "Maximum size is 40 MB",
72+ 'previewContainerId' => "previewVideo",
7273 ],
7374 )
7475` ` `
@@ -79,6 +80,9 @@ The field will be displayed as an input file styled as a button using bootstrap
7980- `media` : refers to the mapping in OneupUploaderBundle's configuration
8081- `mimeTypesMessage` : Localized error message to display for incorrect mime type input
8182- `maxSizeMessage` : Localized error message to display if upload file is larger than the maximum size allowed
83+ - `previewContainerId` : Optional. Id of the video tag container which source will be updated upon upload
8284
83- The bundle will add an extra hidden field to the form with the name of the file field appended with the string "Name" (eg : videoFileName).
84- This field can be used by the application to link the uploaded filename with an entity.
85+ The bundle will add two extra hidden fields to the form :
86+ - a field with the name of the file field appended with the string "Name" (eg : videoFileName).
87+ - a field with the name of the file field appended with the string "OriginalName" (eg : videoOriginalFileName).
88+ These fields can be used by the application to link the uploaded filename with an entity.
Original file line number Diff line number Diff line change @@ -2,7 +2,7 @@ services:
22
33 webridge_largefile.upload_listener :
44 class : Webridge\LargeFileBundle\EventListener\UploadListener
5- arguments : ["uploads%upload_video_rel_directory%" ]
5+ arguments : []
66 tags :
77 - { name: kernel.event_listener, event: oneup_uploader.post_persist, method: onUpload }
88
Original file line number Diff line number Diff line change @@ -20,7 +20,12 @@ var LargeFile = (function() {
2020 } ,
2121 success : function ( files , data , xhr ) {
2222 var inputField = document . getElementById ( this . fileInput [ 0 ] . id ) ;
23- var largeFileField = document . getElementById ( inputField . getAttribute ( 'data-largefile-field' ) ) ;
23+ var largeFileField = document . getElementById (
24+ inputField . getAttribute ( 'data-largefile-field' )
25+ ) ;
26+ var largeFileFieldOriginal = document . getElementById (
27+ inputField . getAttribute ( 'data-largefile-field-original' )
28+ ) ;
2429
2530 getErrorPlaceHolder ( inputField ) . html ( '' ) ;
2631
@@ -31,8 +36,8 @@ var LargeFile = (function() {
3136 uploadFinished ( inputField , false ) ;
3237 return ;
3338 }
34-
3539 largeFileField . value = files . files [ 0 ] . name ;
40+ largeFileFieldOriginal . value = files . files [ 0 ] . originalName ;
3641 //remove the required attribute of the input field
3742 //to allow form submission
3843 inputField . removeAttribute ( 'required' ) ;
Original file line number Diff line number Diff line change 1616 {{ form_widget(
1717 form ,
1818 {' attr' : {
19- ' class' : form .vars .attr .class ~ ' largefile' ,
20- ' data-largefile-field' : largefile_field ,
19+ ' class' : (form .vars .attr is empty )?' largefile' :form .vars .attr .class ~ ' largefile' ,
20+ ' data-largefile-field' : view_id_prefix ~ largefile_field ,
21+ ' data-largefile-field-original' : view_id_prefix ~ largefile_field_original ,
2122 ' data-mimeTypesMessage' : mimeTypesMessage ,
2223 ' data-maxSizeMessage' : maxSizeMessage ,
2324 ' data-url' : oneup_uploader_endpoint(largefile_media ),
2829 {{ form_widget(
2930 attribute (form .parent , largefile_field ),
3031 {
31- ' id' : largefile_field
32+ ' id' : view_id_prefix ~ largefile_field
33+ }
34+ )
35+ }}
36+ {{ form_widget(
37+ attribute (form .parent , largefile_field_original ),
38+ {
39+ ' id' : view_id_prefix ~ largefile_field_original
3240 }
3341 )
3442 }}
3543 </span >
3644
3745 {% endspaceless %}
3846
39- <div class =" error" >
47+ <div class =" error largefile-error " >
4048 <ul >
41- <li id =" {{largefile_field }}_error" >
49+ <li id =" {{view_id_prefix ~ largefile_field }}_error" >
4250 </li >
4351 </ul >
4452 </div >
4553
46- <div id =" {{largefile_field }}_progress" class =" largefile_progress progress" >
54+ <div id =" {{view_id_prefix ~ largefile_field }}_progress" class =" largefile_progress progress" >
4755 <span class =" bar progress-bar" ></span >
4856 </div >
4957
You can’t perform that action at this time.
0 commit comments