diff --git a/app/Http/Requests/ImageUploadRequest.php b/app/Http/Requests/ImageUploadRequest.php
index 6fb6ead210..b3cd6e102c 100644
--- a/app/Http/Requests/ImageUploadRequest.php
+++ b/app/Http/Requests/ImageUploadRequest.php
@@ -7,7 +7,9 @@ use enshrined\svgSanitize\Sanitizer;
use Intervention\Image\Facades\Image;
use App\Http\Traits\ConvertsBase64ToFiles;
use Illuminate\Http\UploadedFile;
-use Storage;
+use Illuminate\Support\Facades\Storage;
+use Intervention\Image\Exception\NotReadableException;
+
class ImageUploadRequest extends Request
{
@@ -106,10 +108,18 @@ class ImageUploadRequest extends Request
\Log::debug('Not an SVG or webp - resize');
\Log::debug('Trying to upload to: '.$path.'/'.$file_name);
- $upload = Image::make($image->getRealPath())->resize(null, $w, function ($constraint) {
- $constraint->aspectRatio();
- $constraint->upsize();
- });
+ try {
+ $upload = Image::make($image->getRealPath())->resize(null, $w, function ($constraint) {
+ $constraint->aspectRatio();
+ $constraint->upsize();
+ });
+ } catch(NotReadableException $e) {
+ \Log::debug($e);
+ $validator = \Validator::make([], []);
+ $validator->errors()->add($form_fieldname, trans('general.unaccepted_image_type', ['mimetype' => $image->getClientMimeType()]));
+
+ throw new \Illuminate\Validation\ValidationException($validator);
+ }
// This requires a string instead of an object, so we use ($string)
Storage::disk('public')->put($path.'/'.$file_name, (string) $upload->encode());
diff --git a/public/js/build/app.js b/public/js/build/app.js
index 5c54959160..c9e1d08a17 100644
--- a/public/js/build/app.js
+++ b/public/js/build/app.js
@@ -2152,10 +2152,13 @@ $(document).ready(function () {
var id = '#' + $this.attr('id');
var status = id + '-status';
var $status = $(status);
+ var delete_id = $(id + '-deleteCheckbox');
+ var preview_container = $(id + '-previewContainer');
$status.removeClass('text-success').removeClass('text-danger');
$(status + ' .goodfile').remove();
$(status + ' .badfile').remove();
$(status + ' .previewSize').hide();
+ preview_container.hide();
$(id + '-info').html('');
var max_size = $this.data('maxsize');
var total_size = 0;
@@ -2165,9 +2168,6 @@ $(document).ready(function () {
$(id + '-info').append('' + htmlEntities(this.files[i].name) + ' (' + formatBytes(this.files[i].size) + ') ');
}
- console.log('Max size is: ' + max_size);
- console.log('Real size is: ' + total_size);
-
if (total_size > max_size) {
$status.addClass('text-danger').removeClass('help-block').prepend(' ').append(' Upload is ' + formatBytes(total_size) + '.');
} else {
@@ -2175,6 +2175,8 @@ $(document).ready(function () {
var $preview = $(id + '-imagePreview');
readURL(this, $preview);
$preview.fadeIn();
+ preview_container.fadeIn();
+ delete_id.hide();
}
});
});
diff --git a/public/js/dist/all.js b/public/js/dist/all.js
index 07d4371e2f..e948c91469 100644
--- a/public/js/dist/all.js
+++ b/public/js/dist/all.js
@@ -61281,10 +61281,13 @@ $(document).ready(function () {
var id = '#' + $this.attr('id');
var status = id + '-status';
var $status = $(status);
+ var delete_id = $(id + '-deleteCheckbox');
+ var preview_container = $(id + '-previewContainer');
$status.removeClass('text-success').removeClass('text-danger');
$(status + ' .goodfile').remove();
$(status + ' .badfile').remove();
$(status + ' .previewSize').hide();
+ preview_container.hide();
$(id + '-info').html('');
var max_size = $this.data('maxsize');
var total_size = 0;
@@ -61294,9 +61297,6 @@ $(document).ready(function () {
$(id + '-info').append('' + htmlEntities(this.files[i].name) + ' (' + formatBytes(this.files[i].size) + ') ');
}
- console.log('Max size is: ' + max_size);
- console.log('Real size is: ' + total_size);
-
if (total_size > max_size) {
$status.addClass('text-danger').removeClass('help-block').prepend(' ').append(' Upload is ' + formatBytes(total_size) + '.');
} else {
@@ -61304,6 +61304,8 @@ $(document).ready(function () {
var $preview = $(id + '-imagePreview');
readURL(this, $preview);
$preview.fadeIn();
+ preview_container.fadeIn();
+ delete_id.hide();
}
});
});
diff --git a/public/mix-manifest.json b/public/mix-manifest.json
index 73e028bd27..f0fc15863a 100644
--- a/public/mix-manifest.json
+++ b/public/mix-manifest.json
@@ -1,5 +1,5 @@
{
- "/js/build/app.js": "/js/build/app.js?id=790387868822daaa28dcc3722928b7b1",
+ "/js/build/app.js": "/js/build/app.js?id=da037f537476ebca094531163cb611f5",
"/css/dist/skins/skin-blue.css": "/css/dist/skins/skin-blue.css?id=f677207c6cf9678eb539abecb408c374",
"/css/build/overrides.css": "/css/build/overrides.css?id=d9175e3d9b9074397343dddebfe23888",
"/css/build/app.css": "/css/build/app.css?id=dcb8aa9f4501a370214a67442e88daf0",
@@ -34,7 +34,7 @@
"/css/dist/bootstrap-table.css": "/css/dist/bootstrap-table.css?id=ee4896df8b8f008ce73a9a0c2549aefd",
"/js/build/vendor.js": "/js/build/vendor.js?id=47ecbb4bb3b0e02315f391caadbdf971",
"/js/dist/bootstrap-table.js": "/js/dist/bootstrap-table.js?id=14d9a2affec7b066d20fcba2e6e67ad2",
- "/js/dist/all.js": "/js/dist/all.js?id=93f3ed97355821b50ee5bbd4f658dd05",
+ "/js/dist/all.js": "/js/dist/all.js?id=758f256419ccaf4b4266da3bbc742b0b",
"/css/dist/skins/skin-green.min.css": "/css/dist/skins/skin-green.min.css?id=0a82a6ae6bb4e58fe62d162c4fb50397",
"/css/dist/skins/skin-green-dark.min.css": "/css/dist/skins/skin-green-dark.min.css?id=c0d21166315b7c2cdd4819fa4a5e4d1e",
"/css/dist/skins/skin-black.min.css": "/css/dist/skins/skin-black.min.css?id=76482123f6c70e866d6b971ba91de7bb",
diff --git a/resources/assets/js/snipeit.js b/resources/assets/js/snipeit.js
index 62abdafde3..6d5340c80f 100755
--- a/resources/assets/js/snipeit.js
+++ b/resources/assets/js/snipeit.js
@@ -540,10 +540,16 @@ $(document).ready(function () {
var id = '#' + $this.attr('id');
var status = id + '-status';
var $status = $(status);
+ var delete_id = $(id + '-deleteCheckbox');
+ var preview_container = $(id + '-previewContainer');
+
+
+
$status.removeClass('text-success').removeClass('text-danger');
$(status + ' .goodfile').remove();
$(status + ' .badfile').remove();
$(status + ' .previewSize').hide();
+ preview_container.hide();
$(id + '-info').html('');
var max_size = $this.data('maxsize');
@@ -554,17 +560,15 @@ $(document).ready(function () {
$(id + '-info').append('' + htmlEntities(this.files[i].name) + ' (' + formatBytes(this.files[i].size) + ') ');
}
- console.log('Max size is: ' + max_size);
- console.log('Real size is: ' + total_size);
-
if (total_size > max_size) {
$status.addClass('text-danger').removeClass('help-block').prepend(' ').append(' Upload is ' + formatBytes(total_size) + '.');
} else {
-
$status.addClass('text-success').removeClass('help-block').prepend(' ');
var $preview = $(id + '-imagePreview');
readURL(this, $preview);
$preview.fadeIn();
+ preview_container.fadeIn();
+ delete_id.hide();
}
diff --git a/resources/lang/en/general.php b/resources/lang/en/general.php
index b73f999229..97b82d95a0 100644
--- a/resources/lang/en/general.php
+++ b/resources/lang/en/general.php
@@ -148,6 +148,7 @@ return [
'filetypes_accepted_help' => 'Accepted filetype is :types. Max upload size allowed is :size.|Accepted filetypes are :types. Max upload size allowed is :size.',
'filetypes_size_help' => 'Max upload size allowed is :size.',
'image_filetypes_help' => 'Accepted filetypes are jpg, webp, png, gif, and svg. Max upload size allowed is :size.',
+ 'unaccepted_image_type' => 'This image file was not readable. Accepted filetypes are jpg, webp, png, gif, and svg. The mimetype of this file is: :mimetype.',
'import' => 'Import',
'importing' => 'Importing',
'importing_help' => 'You can import assets, accessories, licenses, components, consumables, and users via CSV file.
The CSV should be comma-delimited and formatted with headers that match the ones in the sample CSVs in the documentation.',
diff --git a/resources/views/partials/forms/edit/uploadLogo.blade.php b/resources/views/partials/forms/edit/uploadLogo.blade.php
index 7237d7b817..6bbc116b64 100644
--- a/resources/views/partials/forms/edit/uploadLogo.blade.php
+++ b/resources/views/partials/forms/edit/uploadLogo.blade.php
@@ -1,57 +1,66 @@
-
+ {!! $errors->first($logoVariable, ':message') !!} + + +
{{ $helpBlock }}
@if (config('app.lock_passwords')===true){{ trans('general.feature_disabled') }}
@endif - {!! $errors->first($logoVariable, ':message') !!} +