diff --git a/app/Http/Controllers/AssetModelsController.php b/app/Http/Controllers/AssetModelsController.php
index 6673624fc3..4a4478464f 100755
--- a/app/Http/Controllers/AssetModelsController.php
+++ b/app/Http/Controllers/AssetModelsController.php
@@ -85,7 +85,7 @@ class AssetModelsController extends Controller
$model->fieldset_id = e($request->input('custom_fieldset'));
}
- $model = $request->handleImages($model,600,null,null, public_path().'/uploads/models');
+ $model = $request->handleImages($model,600,'image', public_path().'/uploads/models', 'image');
// Was it created?
if ($model->save()) {
diff --git a/app/Http/Controllers/SettingsController.php b/app/Http/Controllers/SettingsController.php
index 53dae7c849..320f12dfca 100755
--- a/app/Http/Controllers/SettingsController.php
+++ b/app/Http/Controllers/SettingsController.php
@@ -410,27 +410,9 @@ class SettingsController extends Controller
}
- if ($request->hasFile('logo')) {
- $image = $request->file('logo');
- $ext = $image->getClientOriginalExtension();
- $setting->logo = $file_name = 'logo-'.date('U').'.'. $ext;
+ $setting = $request->handleImages('logo',600,'logo','', 'logo');
- if ('svg' != $image->getClientOriginalExtension()) {
- $upload = Image::make($image->getRealPath())->resize(null, 150, function ($constraint) {
- $constraint->aspectRatio();
- $constraint->upsize();
- });
- }
-
- // This requires a string instead of an object, so we use ($string)
- Storage::disk('public')->put($file_name, (string) $upload->encode());
-
- // Remove Current image if exists
- if (($setting->logo) && (file_exists($file_name))) {
- Storage::disk('public')->delete($file_name);
- }
-
- } elseif ('1' == $request->input('clear_logo')) {
+ if ('1' == $request->input('clear_logo')) {
Storage::disk('public')->delete($setting->logo);
$setting->logo = null;
$setting->brand = 1;
diff --git a/app/Http/Controllers/Users/UsersController.php b/app/Http/Controllers/Users/UsersController.php
index 1d06b1dc03..bfba9b26f7 100755
--- a/app/Http/Controllers/Users/UsersController.php
+++ b/app/Http/Controllers/Users/UsersController.php
@@ -291,9 +291,11 @@ class UsersController extends Controller
$user->permissions = json_encode($permissions_array);
- app('App\Http\Requests\ImageUploadRequest')->handleImages($user, 600, 'image', 'avatars', 'avatar');
+ // Handle uploaded avatar
+ app('App\Http\Requests\ImageUploadRequest')->handleImages($user, 600, 'avatar', 'avatars', 'avatar');
+ //\Log::debug(print_r($user, true));
// Was the user updated?
if ($user->save()) {
diff --git a/app/Http/Requests/ImageUploadRequest.php b/app/Http/Requests/ImageUploadRequest.php
index 72ec9021a7..39b61be45a 100644
--- a/app/Http/Requests/ImageUploadRequest.php
+++ b/app/Http/Requests/ImageUploadRequest.php
@@ -43,49 +43,48 @@ class ImageUploadRequest extends Request
* @param String $path location for uploaded images, defaults to uploads/plural of item type.
* @return SnipeModel Target asset is being checked out to.
*/
- public function handleImages($item, $w = 600, $fieldname = 'image', $path = null, $db_fieldname = 'image')
+ public function handleImages($item, $w = 600, $form_fieldname = null, $path = null, $db_fieldname = 'image')
{
- \Log::debug('Handle file upload');
-
$type = strtolower(class_basename(get_class($item)));
if (is_null($path)) {
- $path = str_plural($type);
+ $path = str_plural($type);
- if ($type=='assetmodel') {
- \Log::debug('This is an asset model! Override the path');
+ if ($type == 'assetmodel') {
$path = 'models';
}
- if ($type=='user') {
- \Log::debug('This is a user! Override the path');
+ if ($type == 'user') {
$path = 'avatars';
}
}
- \Log::info('Path is: '.$path);
+ if (is_null($form_fieldname)) {
+ $form_fieldname = 'image';
+ }
+
+ // This is dumb, but we need it for overriding field names for exceptions like avatars and logo uploads
+ if (is_null($db_fieldname)) {
+ $use_db_field = $form_fieldname;
+ } else {
+ $use_db_field = $db_fieldname;
+ }
+
+
+ \Log::info('Image path is: '.$path);
\Log::debug('Type is: '.$type);
- \Log::debug('Image path is: '.$path);
- \Log::debug('Image fieldname is: '.$fieldname);
+ \Log::debug('Form fieldname is: '.$form_fieldname);
+ \Log::debug('DB fieldname is: '.$use_db_field);
\Log::debug('Trying to upload to '. $path);
- if ($this->hasFile($fieldname)) {
+ \Log::debug($this->file());
+
+ if ($this->hasFile($form_fieldname)) {
if (!config('app.lock_passwords')) {
- if (!Storage::disk('public')->exists($path))
- {
- \Log::debug($path);
- // Storage::disk('public')->makeDirectory($path, 775);
- }
-
- if (!is_dir($path)) {
- \Log::info($path.' does not exist');
- //mkdir($path);
- }
-
- $image = $this->file($fieldname);
+ $image = $this->file($form_fieldname);
$ext = $image->getClientOriginalExtension();
$file_name = $type.'-'.str_random(18).'.'.$ext;
@@ -120,40 +119,32 @@ class ImageUploadRequest extends Request
// Remove Current image if exists
- if (($item->{$fieldname}) && (Storage::disk('public')->exists($path.'/'.$item->{$fieldname}))) {
- \Log::debug('A file already exists that we are replacing - we should delete the old one.');
+ if (Storage::disk('public')->exists($path.'/'.$item->{$use_db_field})) {
- // Assign the new filename as the fieldname
- if (is_null($db_fieldname)) {
- $item->{$fieldname} = $file_name;
- } else {
- $item->{$db_fieldname} = $file_name;
- }
+ \Log::debug('A file already exists that we are replacing - we should delete the old one.');
try {
- Storage::disk('public')->delete($path.'/'.$item->{$fieldname});
+ Storage::disk('public')->delete($path.'/'.$item->{$use_db_field});
+ \Log::debug('Old file '.$path.'/'.$file_name.' has been deleted.');
} catch (\Exception $e) {
- \Log::debug('Could not delete old file. '.$path.'/'.$item->{$fieldname}.' does not exist?');
+ \Log::debug('Could not delete old file. '.$path.'/'.$file_name.' does not exist?');
}
}
+ $item->{$use_db_field} = $file_name;
+
}
// If the user isn't uploading anything new but wants to delete their old image, do so
} else {
-
+ \Log::debug('No file passed for '.$form_fieldname);
if ($this->input('image_delete')=='1') {
+ \Log::debug('Deleting image');
try {
-
- if (is_null($db_fieldname)) {
- $item->{$fieldname} = null;
- Storage::disk('public')->delete($path . '/' . $item->{$fieldname});
- } else {
- $item->{$db_fieldname} = null;
- Storage::disk('public')->delete($path . '/' . $item->{$fieldname});
- }
+ Storage::disk('public')->delete($path . '/' . $item->{$use_db_field});
+ $item->{$use_db_field} = null;
} catch (\Exception $e) {
\Log::debug($e);
@@ -163,7 +154,6 @@ class ImageUploadRequest extends Request
}
-
return $item;
}
}
diff --git a/resources/views/partials/forms/edit/image-upload.blade.php b/resources/views/partials/forms/edit/image-upload.blade.php
index d0c89bee99..1676ce669e 100644
--- a/resources/views/partials/forms/edit/image-upload.blade.php
+++ b/resources/views/partials/forms/edit/image-upload.blade.php
@@ -6,7 +6,7 @@