Skip to content

Commit 936d8be

Browse files
committed
Merge pull request #97 from ejeanneaubc/master
Multiple files upload + change translations (en/fr)
2 parents 9112c21 + 3aa9086 commit 936d8be

File tree

5 files changed

+70
-53
lines changed

5 files changed

+70
-53
lines changed

src/controllers/UploadController.php

Lines changed: 61 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -37,31 +37,34 @@ public function upload()
3737
return $e->getMessage();
3838
}
3939

40-
$file = Input::file('upload');
40+
$files = Input::file('upload');
4141

42-
$new_filename = $this->getNewName($file);
42+
foreach($files as $file)
43+
{
44+
$new_filename = $this->getNewName($file);
4345

44-
$dest_path = parent::getPath('directory');
46+
$dest_path = parent::getPath('directory');
4547

46-
if (File::exists($dest_path . $new_filename)) {
47-
return Lang::get('laravel-filemanager::lfm.error-file-exist');
48-
}
48+
if (File::exists($dest_path . $new_filename)) {
49+
return Lang::get('laravel-filemanager::lfm.error-file-exist');
50+
}
4951

50-
//Apply orientation from exif data
51-
$img = Image::make($file->getRealPath())->orientate();
52-
$upload = $img->save($dest_path . $new_filename, 90);
52+
//Apply orientation from exif data
53+
$img = Image::make($file->getRealPath())->orientate();
54+
$upload = $img->save($dest_path . $new_filename, 90);
5355

54-
//$file->move($dest_path, $new_filename);
56+
//$file->move($dest_path, $new_filename);
5557

56-
if ('Images' === $this->file_type) {
57-
$this->makeThumb($dest_path, $new_filename);
58-
}
58+
if ('Images' === $this->file_type) {
59+
$this->makeThumb($dest_path, $new_filename);
60+
}
5961

60-
Event::fire(new ImageWasUploaded(realpath($dest_path.'/'.$new_filename)));
62+
Event::fire(new ImageWasUploaded(realpath($dest_path.'/'.$new_filename)));
6163

62-
// upload via ckeditor 'Upload' tab
63-
if (!Input::has('show_list')) {
64-
return $this->useFile($new_filename);
64+
// upload via ckeditor 'Upload' tab
65+
if (!Input::has('show_list')) {
66+
return $this->useFile($new_filename);
67+
}
6568
}
6669

6770
return 'OK';
@@ -73,41 +76,55 @@ private function uploadValidator()
7376

7477
$expected_file_type = $this->file_type;
7578
$is_valid = false;
79+
$force_invalid = false;
80+
81+
$files = Input::file('upload');
82+
83+
foreach($files as $file)
84+
{
85+
if (empty($file)) {
86+
throw new \Exception(Lang::get('laravel-filemanager::lfm.error-file-empty'));
87+
} elseif (!$file instanceof UploadedFile) {
88+
throw new \Exception(Lang::get('laravel-filemanager::lfm.error-instance'));
89+
} elseif ($file->getError() == UPLOAD_ERR_INI_SIZE) {
90+
$max_size = ini_get('upload_max_filesize');
91+
throw new \Exception(Lang::get('laravel-filemanager::lfm.error-file-size', ['max' => $max_size]));
92+
} elseif ($file->getError() != UPLOAD_ERR_OK) {
93+
dd('File failed to upload. Error code: ' . $file->getError());
94+
}
7695

77-
$file = Input::file('upload');
78-
79-
if (empty($file)) {
80-
throw new \Exception(Lang::get('laravel-filemanager::lfm.error-file-empty'));
81-
} elseif (!$file instanceof UploadedFile) {
82-
throw new \Exception(Lang::get('laravel-filemanager::lfm.error-instance'));
83-
} elseif ($file->getError() == UPLOAD_ERR_INI_SIZE) {
84-
$max_size = ini_get('upload_max_filesize');
85-
throw new \Exception(Lang::get('laravel-filemanager::lfm.error-file-size', ['max' => $max_size]));
86-
} elseif ($file->getError() != UPLOAD_ERR_OK) {
87-
dd('File failed to upload. Error code: ' . $file->getError());
88-
}
96+
$mimetype = $file->getMimeType();
8997

90-
$mimetype = $file->getMimeType();
98+
if ($expected_file_type === 'Files') {
99+
$config_name = 'lfm.valid_file_mimetypes';
100+
$valid_mimetypes = Config::get($config_name, $this->default_file_types);
101+
} else {
102+
$config_name = 'lfm.valid_image_mimetypes';
103+
$valid_mimetypes = Config::get($config_name, $this->default_image_types);
104+
}
91105

92-
if ($expected_file_type === 'Files') {
93-
$config_name = 'lfm.valid_file_mimetypes';
94-
$valid_mimetypes = Config::get($config_name, $this->default_file_types);
95-
} else {
96-
$config_name = 'lfm.valid_image_mimetypes';
97-
$valid_mimetypes = Config::get($config_name, $this->default_image_types);
98-
}
106+
if (!is_array($valid_mimetypes)) {
107+
$force_invalid = true;
108+
throw new \Exception('Config : ' . $config_name . ' is not set correctly');
109+
}
99110

100-
if (!is_array($valid_mimetypes)) {
101-
throw new \Exception('Config : ' . $config_name . ' is not set correctly');
102-
}
111+
$is_valid = false;
103112

104-
if (in_array($mimetype, $valid_mimetypes)) {
105-
$is_valid = true;
113+
if (in_array($mimetype, $valid_mimetypes)) {
114+
$is_valid = true;
115+
}
116+
117+
if (false === $is_valid) {
118+
$force_invalid = true;
119+
throw new \Exception(Lang::get('laravel-filemanager::lfm.error-mime') . $mimetype);
120+
}
106121
}
107122

108-
if (false === $is_valid) {
109-
throw new \Exception(Lang::get('laravel-filemanager::lfm.error-mime') . $mimetype);
123+
if($force_invalid)
124+
{
125+
return false;
110126
}
127+
111128
return $is_valid;
112129
}
113130

src/lang/en/lfm.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
'title-page' => 'File Manager',
1818
'title-panel' => 'Laravel FileManager',
19-
'title-upload' => 'Upload File',
19+
'title-upload' => 'Upload File(s)',
2020
'title-view' => 'View File',
2121
'title-root' => 'Files',
2222
'title-shares' => 'Shared Files',
@@ -29,7 +29,7 @@
2929
'type-folder' => 'Folder',
3030

3131
'message-empty' => 'Folder is empty.',
32-
'message-choose' => 'Choose File',
32+
'message-choose' => 'Choose File(s)',
3333
'message-delete' => 'Are you sure you want to delete this item?',
3434
'message-name' => 'Folder name:',
3535
'message-rename' => 'Rename to:',
@@ -49,7 +49,7 @@
4949
'error-other' => 'An error has occured: ',
5050
'error-too-large' => 'Request entity too large!',
5151

52-
'btn-upload' => 'Upload File',
52+
'btn-upload' => 'Upload File(s)',
5353
'btn-uploading' => 'Uploading...',
5454
'btn-close' => 'Close',
5555
'btn-crop' => 'Crop',

src/lang/fr/lfm.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
'title-page' => 'Gestionnaire de fichiers',
1818
'title-panel' => 'Laravel FileManager',
19-
'title-upload' => 'Envoyer un fichier',
19+
'title-upload' => 'Envoyer un/des fichier(s)',
2020
'title-view' => 'Voir le fichier',
2121
'title-root' => 'Fichiers',
2222
'title-shares' => 'Fichiers partagés',
@@ -28,8 +28,8 @@
2828

2929
'type-folder' => 'Dossier',
3030

31-
'message-empty' => 'Dossier vide',
32-
'message-choose' => 'Choisir un fichier',
31+
'message-empty' => 'Dossier est vide',
32+
'message-choose' => 'Choisir un/des fichier(s)',
3333
'message-delete' => 'Êtes-vous sûr de vouloir supprimer ce fichier ?',
3434
'message-name' => 'Nom du dossier :',
3535
'message-rename' => 'Renommer le dossier :',
@@ -47,7 +47,7 @@
4747
'error-instance' => 'Le fichier doit être une instance de UploadedFile',
4848
'error-invalid' => "Requête d'upload invalide",
4949

50-
'btn-upload' => 'Envoyer le fichier',
50+
'btn-upload' => 'Envoyer le/les fichier(s)',
5151
'btn-uploading' => 'Envoi...',
5252
'btn-close' => 'Fermer',
5353
'btn-crop' => 'Rogner',

src/views/index.blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@
114114
<label for='upload' class='control-label'>{{ Lang::get('laravel-filemanager::lfm.message-choose') }}</label>
115115
<div class="controls">
116116
<div class="input-group" style="width: 100%">
117-
<input type="file" id="upload" name="upload">
117+
<input type="file" id="upload" name="upload[]" multiple="multiple">
118118
</div>
119119
</div>
120120
</div>

src/views/script.blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ function showResponse(responseText, statusText, xhr, $form) {
5656
if (responseText != 'OK'){
5757
notify(responseText);
5858
}
59-
$('#upload').val('');
59+
$('input#upload').val('');
6060
loadItems();
6161
}
6262

0 commit comments

Comments
 (0)