Upload image easily using Laravel's build in function and resize it automatically.
- Version Compatibility
- Installation
- Publish Configuration and Migration File
- Try Upload Something!
- Usage
- Changelog
- Next Feature
- License
Laravel | Imageupload | Installation Command |
---|---|---|
4.2.x | 4.x (obsolete) | composer require "matriphe/imageupload:4.2.*" |
5.0.x / 5.1.x / 5.2.x / 5.3.x / 5.4.x | 5.x (stable) | composer require "matriphe/imageupload:5.*" |
5.0.x / 5.1.x / 5.2.x / 5.3.x / 5.4.x | 6.0 | composer require "matriphe/imageupload:6.0" |
5.2.x / 5.3.x / 5.4.x / 5.5.x | 6.1.x (latest) | composer require "matriphe/imageupload:6.1.*" |
The old version was following Laravel version. Now this package will use semantic version (semver) start from version 6.0.
Open composer.json
and require this line below.
"matriphe/imageupload": "6.*"
Or you can simply run this command from your project directory.
composer require "matriphe/imageupload"
Open the config/app.php
and add this line in providers
section.
Matriphe\Imageupload\ImageuploadServiceProvider::class,
Still on config/app.php
file, add this line in aliases
section.
'Imageupload' => Matriphe\Imageupload\ImageuploadFacade::class,
Nothing to do. It used Laravel auto package discovery feature.
To control the configuration, you have to publish the configuration file.
php artisan vendor:publish --provider="Matriphe\Imageupload\ImageuploadServiceProvider"
After running this command, there will be config/imageupload.php
config file and database/migrations/2017_07_24_024410_create_image_upload_table.php
migration file.
Please check the config/imageupload.php
for more detail. You can use .env
to config based on your environment.
If you want to publish the configuration file only, run this command.
php artisan vendor:publish --provider="Matriphe\Imageupload\ImageuploadServiceProvider" --tag=imageupload-config
By default, a migration file will create image_uploads
table. Check the file and modify to fit your need.
If you want to publish the migration file only, run this command.
php artisan vendor:publish --provider="Matriphe\Imageupload\ImageuploadServiceProvider --tag=imageupload-migrations"
You can create a model to extend the built-in model, by extending Matriphe\Imageupload\ImageuploadModel
. Please check this file too and adjust to fit your need.
<?php
namespace App;
use Matriphe\Imageupload\ImageuploadModel;
class Image extends ImageuploadModel
{
protected $table = 'images';
}
After publishing the configuration file, you can set up a route, view, and start upload something.
The uploaded file will be saved in public/uploads
directory. Of course, you can change this by publishing and modifying configuration file.
Make sure the directory to store uploaded files is writable and can be accessed by public.
<?php
// routes.php
Route::any('matriphe/imageupload', function()
{
$data = [];
if (Request::hasFile('file')) {
$data['result'] = Imageupload::upload(Request::file('file'));
}
return view('form.blade.php')->with($data);
});
Add this in your views directory.
<!DOCTYPE html>
<html>
<head>
<title>Imageupload</title>
</head>
<body>
<form action="{{ URL::current() }}" method="post" enctype="multipart/form-data">
<input type="hidden" name="_token" value="{{ Session::token() }}">
<pre>{{ (!empty($result) ? print_r($result, 1) : '') }}</pre>
<div>
<input type="file" name="file">
</div>
<div>
<button type="submit">Upload!</button>
</div>
</form>
</body>
</html>
Just use the Imageupload::upload(Request::file('file'))
function and it will take care of cropping and renaming. Of course, you can modify on the fly by passing parameter Imageupload::upload($filesource, $newfilename, $path)
.
The return of the function is instance of Illuminate\Support\Collection
. You can easily convert to array or JSON by using toArray()
or toJson()
method.
To change the output on fly, use method ouput($output)
before calling upload($request)
. The options is collection
, json
, db
, and array
(default). See the config file to set the default output.
The db
option will automatically save output to database and return Matriphe\Imageupload\ImageuploadModel
object.
if (Request::hasFile('file')) {
$result = Imageupload::upload(Request::file('file'));
}
if (Request::hasFile('file')) {
$result = Imageupload::output('json')->upload(Request::file('file'));
}
{
"original_filename":"IMG_20170619_195131.jpg",
"original_filepath":"\/Volumes\/data\/Development\/php\/laravel\/51\/public\/uploads\/images\/IMG_20170619_195131.jpg",
"original_filedir":"uploads\/images\/IMG_20170619_195131.jpg",
"original_extension":"jpg",
"original_mime":"image\/jpeg",
"original_filesize":1379716,
"original_width":2592,
"original_height":4608,
"exif":{
"FileName":"phpPfn2JP",
"FileDateTime":1500894790,
"FileSize":1379716,
"FileType":2,
"MimeType":"image\/jpeg",
"SectionsFound":"ANY_TAG, IFD0, THUMBNAIL, EXIF, GPS, INTEROP",
"COMPUTED":{
"html":"width=\"2592\" height=\"4608\"",
"Height":4608,
"Width":2592,
"IsColor":1,
"ByteOrderMotorola":1,
"ApertureFNumber":"f\/2.0",
"Thumbnail.FileType":2,
"Thumbnail.MimeType":"image\/jpeg"
},
"Make":"Xiaomi",
"Model":"Redmi Note3",
"XResolution":"72\/1",
"YResolution":"72\/1",
"ResolutionUnit":2,
"Software":"kenzo-user 6.0.1 MMB29M 7.6.7 release-keys",
"DateTime":"2017:06:19 19:51:31",
"YCbCrPositioning":1,
"Exif_IFD_Pointer":234,
"GPS_IFD_Pointer":718,
"THUMBNAIL":{
"Compression":6,
"XResolution":"72\/1",
"YResolution":"72\/1",
"ResolutionUnit":2,
"JPEGInterchangeFormat":898,
"JPEGInterchangeFormatLength":15696
},
"ExposureTime":"1\/33",
"FNumber":"200\/100",
"ExposureProgram":0,
"ISOSpeedRatings":854,
"ExifVersion":"0220",
"DateTimeOriginal":"2017:06:19 19:51:31",
"DateTimeDigitized":"2017:06:19 19:51:31",
"ComponentsConfiguration":"\u0001\u0002\u0003\u0000",
"ShutterSpeedValue":"5058\/1000",
"ApertureValue":"200\/100",
"BrightnessValue":"300\/100",
"MeteringMode":1,
"Flash":16,
"FocalLength":"357\/100",
"SubSecTime":"123298",
"SubSecTimeOriginal":"123298",
"SubSecTimeDigitized":"123298",
"FlashPixVersion":"0100",
"ColorSpace":1,
"ExifImageWidth":2592,
"ExifImageLength":4608,
"InteroperabilityOffset":687,
"SensingMethod":2,
"SceneType":"\u0001",
"ExposureMode":0,
"WhiteBalance":0,
"FocalLengthIn35mmFilm":4,
"SceneCaptureType":0,
"GPSAltitudeRef":"200\/100",
"GPSTimeStamp":[
"12\/1",
"51\/1",
"30\/1"
],
"GPSDateStamp":"2017:06:19",
"InterOperabilityIndex":"R98",
"InterOperabilityVersion":"0100"
},
"path":"\/Volumes\/data\/Development\/php\/laravel\/51\/public\/uploads\/images",
"dir":"uploads\/images",
"filename":"IMG_20170619_195131.jpg",
"basename":"IMG_20170619_195131",
"dimensions":{
"square50":{
"path":"\/Volumes\/data\/Development\/php\/laravel\/51\/public\/uploads\/images",
"dir":"uploads\/images\/IMG_20170619_195131_square50.jpg",
"filename":"IMG_20170619_195131_square50.jpg",
"filepath":"\/Volumes\/data\/Development\/php\/laravel\/51\/public\/uploads\/images\/IMG_20170619_195131_square50.jpg",
"filedir":"uploads\/images\/IMG_20170619_195131_square50.jpg",
"width":50,
"height":50,
"filesize":1379716,
"is_squared":true
},
"square100":{
"path":"\/Volumes\/data\/Development\/php\/laravel\/51\/public\/uploads\/images",
"dir":"uploads\/images\/IMG_20170619_195131_square100.jpg",
"filename":"IMG_20170619_195131_square100.jpg",
"filepath":"\/Volumes\/data\/Development\/php\/laravel\/51\/public\/uploads\/images\/IMG_20170619_195131_square100.jpg",
"filedir":"uploads\/images\/IMG_20170619_195131_square100.jpg",
"width":100,
"height":100,
"filesize":1379716,
"is_squared":true
},
"square200":{
"path":"\/Volumes\/data\/Development\/php\/laravel\/51\/public\/uploads\/images",
"dir":"uploads\/images\/IMG_20170619_195131_square200.jpg",
"filename":"IMG_20170619_195131_square200.jpg",
"filepath":"\/Volumes\/data\/Development\/php\/laravel\/51\/public\/uploads\/images\/IMG_20170619_195131_square200.jpg",
"filedir":"uploads\/images\/IMG_20170619_195131_square200.jpg",
"width":200,
"height":200,
"filesize":1379716,
"is_squared":true
},
"square400":{
"path":"\/Volumes\/data\/Development\/php\/laravel\/51\/public\/uploads\/images",
"dir":"uploads\/images\/IMG_20170619_195131_square400.jpg",
"filename":"IMG_20170619_195131_square400.jpg",
"filepath":"\/Volumes\/data\/Development\/php\/laravel\/51\/public\/uploads\/images\/IMG_20170619_195131_square400.jpg",
"filedir":"uploads\/images\/IMG_20170619_195131_square400.jpg",
"width":400,
"height":400,
"filesize":1379716,
"is_squared":true
},
"size50":{
"path":"\/Volumes\/data\/Development\/php\/laravel\/51\/public\/uploads\/images",
"dir":"uploads\/images\/IMG_20170619_195131_size50.jpg",
"filename":"IMG_20170619_195131_size50.jpg",
"filepath":"\/Volumes\/data\/Development\/php\/laravel\/51\/public\/uploads\/images\/IMG_20170619_195131_size50.jpg",
"filedir":"uploads\/images\/IMG_20170619_195131_size50.jpg",
"width":28,
"height":50,
"filesize":1379716,
"is_squared":false
},
"size100":{
"path":"\/Volumes\/data\/Development\/php\/laravel\/51\/public\/uploads\/images",
"dir":"uploads\/images\/IMG_20170619_195131_size100.jpg",
"filename":"IMG_20170619_195131_size100.jpg",
"filepath":"\/Volumes\/data\/Development\/php\/laravel\/51\/public\/uploads\/images\/IMG_20170619_195131_size100.jpg",
"filedir":"uploads\/images\/IMG_20170619_195131_size100.jpg",
"width":56,
"height":100,
"filesize":1379716,
"is_squared":false
},
"size200":{
"path":"\/Volumes\/data\/Development\/php\/laravel\/51\/public\/uploads\/images",
"dir":"uploads\/images\/IMG_20170619_195131_size200.jpg",
"filename":"IMG_20170619_195131_size200.jpg",
"filepath":"\/Volumes\/data\/Development\/php\/laravel\/51\/public\/uploads\/images\/IMG_20170619_195131_size200.jpg",
"filedir":"uploads\/images\/IMG_20170619_195131_size200.jpg",
"width":112,
"height":200,
"filesize":1379716,
"is_squared":false
},
"size400":{
"path":"\/Volumes\/data\/Development\/php\/laravel\/51\/public\/uploads\/images",
"dir":"uploads\/images\/IMG_20170619_195131_size400.jpg",
"filename":"IMG_20170619_195131_size400.jpg",
"filepath":"\/Volumes\/data\/Development\/php\/laravel\/51\/public\/uploads\/images\/IMG_20170619_195131_size400.jpg",
"filedir":"uploads\/images\/IMG_20170619_195131_size400.jpg",
"width":225,
"height":400,
"filesize":1379716,
"is_squared":false
}
}
}
Array
(
[original_filename] => IMG_20170619_195131.jpg
[original_filepath] => /Volumes/data/Development/php/laravel/51/public/uploads/images/IMG_20170619_195131.jpg
[original_filedir] => uploads/images/IMG_20170619_195131.jpg
[original_extension] => jpg
[original_mime] => image/jpeg
[original_filesize] => 1379716
[original_width] => 2592
[original_height] => 4608
[exif] => Array
(
[FileName] => phpPfn2JP
[FileDateTime] => 1500894790
[FileSize] => 1379716
[FileType] => 2
[MimeType] => image/jpeg
[SectionsFound] => ANY_TAG, IFD0, THUMBNAIL, EXIF, GPS, INTEROP
[COMPUTED] => Array
(
[html] => width="2592" height="4608"
[Height] => 4608
[Width] => 2592
[IsColor] => 1
[ByteOrderMotorola] => 1
[ApertureFNumber] => f/2.0
[Thumbnail.FileType] => 2
[Thumbnail.MimeType] => image/jpeg
)
[Make] => Xiaomi
[Model] => Redmi Note3
[XResolution] => 72/1
[YResolution] => 72/1
[ResolutionUnit] => 2
[Software] => kenzo-user 6.0.1 MMB29M 7.6.7 release-keys
[DateTime] => 2017:06:19 19:51:31
[YCbCrPositioning] => 1
[Exif_IFD_Pointer] => 234
[GPS_IFD_Pointer] => 718
[THUMBNAIL] => Array
(
[Compression] => 6
[XResolution] => 72/1
[YResolution] => 72/1
[ResolutionUnit] => 2
[JPEGInterchangeFormat] => 898
[JPEGInterchangeFormatLength] => 15696
)
[ExposureTime] => 1/33
[FNumber] => 200/100
[ExposureProgram] => 0
[ISOSpeedRatings] => 854
[ExifVersion] => 0220
[DateTimeOriginal] => 2017:06:19 19:51:31
[DateTimeDigitized] => 2017:06:19 19:51:31
[ComponentsConfiguration] => ���
[ShutterSpeedValue] => 5058/1000
[ApertureValue] => 200/100
[BrightnessValue] => 300/100
[MeteringMode] => 1
[Flash] => 16
[FocalLength] => 357/100
[SubSecTime] => 123298
[SubSecTimeOriginal] => 123298
[SubSecTimeDigitized] => 123298
[FlashPixVersion] => 0100
[ColorSpace] => 1
[ExifImageWidth] => 2592
[ExifImageLength] => 4608
[InteroperabilityOffset] => 687
[SensingMethod] => 2
[SceneType] => �
[ExposureMode] => 0
[WhiteBalance] => 0
[FocalLengthIn35mmFilm] => 4
[SceneCaptureType] => 0
[GPSAltitudeRef] => 200/100
[GPSTimeStamp] => Array
(
[0] => 12/1
[1] => 51/1
[2] => 30/1
)
[GPSDateStamp] => 2017:06:19
[InterOperabilityIndex] => R98
[InterOperabilityVersion] => 0100
)
[path] => /Volumes/data/Development/php/laravel/51/public/uploads/images
[dir] => uploads/images
[filename] => IMG_20170619_195131.jpg
[basename] => IMG_20170619_195131
[dimensions] => Array
(
[square50] => Array
(
[path] => /Volumes/data/Development/php/laravel/51/public/uploads/images
[dir] => uploads/images/IMG_20170619_195131_square50.jpg
[filename] => IMG_20170619_195131_square50.jpg
[filepath] => /Volumes/data/Development/php/laravel/51/public/uploads/images/IMG_20170619_195131_square50.jpg
[filedir] => uploads/images/IMG_20170619_195131_square50.jpg
[width] => 50
[height] => 50
[filesize] => 1379716
[is_squared] => 1
)
[square100] => Array
(
[path] => /Volumes/data/Development/php/laravel/51/public/uploads/images
[dir] => uploads/images/IMG_20170619_195131_square100.jpg
[filename] => IMG_20170619_195131_square100.jpg
[filepath] => /Volumes/data/Development/php/laravel/51/public/uploads/images/IMG_20170619_195131_square100.jpg
[filedir] => uploads/images/IMG_20170619_195131_square100.jpg
[width] => 100
[height] => 100
[filesize] => 1379716
[is_squared] => 1
)
[square200] => Array
(
[path] => /Volumes/data/Development/php/laravel/51/public/uploads/images
[dir] => uploads/images/IMG_20170619_195131_square200.jpg
[filename] => IMG_20170619_195131_square200.jpg
[filepath] => /Volumes/data/Development/php/laravel/51/public/uploads/images/IMG_20170619_195131_square200.jpg
[filedir] => uploads/images/IMG_20170619_195131_square200.jpg
[width] => 200
[height] => 200
[filesize] => 1379716
[is_squared] => 1
)
[square400] => Array
(
[path] => /Volumes/data/Development/php/laravel/51/public/uploads/images
[dir] => uploads/images/IMG_20170619_195131_square400.jpg
[filename] => IMG_20170619_195131_square400.jpg
[filepath] => /Volumes/data/Development/php/laravel/51/public/uploads/images/IMG_20170619_195131_square400.jpg
[filedir] => uploads/images/IMG_20170619_195131_square400.jpg
[width] => 400
[height] => 400
[filesize] => 1379716
[is_squared] => 1
)
[size50] => Array
(
[path] => /Volumes/data/Development/php/laravel/51/public/uploads/images
[dir] => uploads/images/IMG_20170619_195131_size50.jpg
[filename] => IMG_20170619_195131_size50.jpg
[filepath] => /Volumes/data/Development/php/laravel/51/public/uploads/images/IMG_20170619_195131_size50.jpg
[filedir] => uploads/images/IMG_20170619_195131_size50.jpg
[width] => 28
[height] => 50
[filesize] => 1379716
[is_squared] =>
)
[size100] => Array
(
[path] => /Volumes/data/Development/php/laravel/51/public/uploads/images
[dir] => uploads/images/IMG_20170619_195131_size100.jpg
[filename] => IMG_20170619_195131_size100.jpg
[filepath] => /Volumes/data/Development/php/laravel/51/public/uploads/images/IMG_20170619_195131_size100.jpg
[filedir] => uploads/images/IMG_20170619_195131_size100.jpg
[width] => 56
[height] => 100
[filesize] => 1379716
[is_squared] =>
)
[size200] => Array
(
[path] => /Volumes/data/Development/php/laravel/51/public/uploads/images
[dir] => uploads/images/IMG_20170619_195131_size200.jpg
[filename] => IMG_20170619_195131_size200.jpg
[filepath] => /Volumes/data/Development/php/laravel/51/public/uploads/images/IMG_20170619_195131_size200.jpg
[filedir] => uploads/images/IMG_20170619_195131_size200.jpg
[width] => 112
[height] => 200
[filesize] => 1379716
[is_squared] =>
)
[size400] => Array
(
[path] => /Volumes/data/Development/php/laravel/51/public/uploads/images
[dir] => uploads/images/IMG_20170619_195131_size400.jpg
[filename] => IMG_20170619_195131_size400.jpg
[filepath] => /Volumes/data/Development/php/laravel/51/public/uploads/images/IMG_20170619_195131_size400.jpg
[filedir] => uploads/images/IMG_20170619_195131_size400.jpg
[width] => 225
[height] => 400
[filesize] => 1379716
[is_squared] =>
)
)
)
Illuminate\Support\Collection Object
(
[items:protected] => Array
(
[original_filename] => IMG_20170619_195131.jpg
[original_filepath] => /Volumes/data/Development/php/laravel/51/public/uploads/images/IMG_20170619_195131.jpg
[original_filedir] => uploads/images/IMG_20170619_195131.jpg
[original_extension] => jpg
[original_mime] => image/jpeg
[original_filesize] => 1379716
[original_width] => 2592
[original_height] => 4608
[exif] => Array
(
[FileName] => phpGacSlt
[FileDateTime] => 1500895792
[FileSize] => 1379716
[FileType] => 2
[MimeType] => image/jpeg
[SectionsFound] => ANY_TAG, IFD0, THUMBNAIL, EXIF, GPS, INTEROP
[COMPUTED] => Array
(
[html] => width="2592" height="4608"
[Height] => 4608
[Width] => 2592
[IsColor] => 1
[ByteOrderMotorola] => 1
[ApertureFNumber] => f/2.0
[Thumbnail.FileType] => 2
[Thumbnail.MimeType] => image/jpeg
)
[Make] => Xiaomi
[Model] => Redmi Note3
[XResolution] => 72/1
[YResolution] => 72/1
[ResolutionUnit] => 2
[Software] => kenzo-user 6.0.1 MMB29M 7.6.7 release-keys
[DateTime] => 2017:06:19 19:51:31
[YCbCrPositioning] => 1
[Exif_IFD_Pointer] => 234
[GPS_IFD_Pointer] => 718
[THUMBNAIL] => Array
(
[Compression] => 6
[XResolution] => 72/1
[YResolution] => 72/1
[ResolutionUnit] => 2
[JPEGInterchangeFormat] => 898
[JPEGInterchangeFormatLength] => 15696
)
[ExposureTime] => 1/33
[FNumber] => 200/100
[ExposureProgram] => 0
[ISOSpeedRatings] => 854
[ExifVersion] => 0220
[DateTimeOriginal] => 2017:06:19 19:51:31
[DateTimeDigitized] => 2017:06:19 19:51:31
[ComponentsConfiguration] => ���
[ShutterSpeedValue] => 5058/1000
[ApertureValue] => 200/100
[BrightnessValue] => 300/100
[MeteringMode] => 1
[Flash] => 16
[FocalLength] => 357/100
[SubSecTime] => 123298
[SubSecTimeOriginal] => 123298
[SubSecTimeDigitized] => 123298
[FlashPixVersion] => 0100
[ColorSpace] => 1
[ExifImageWidth] => 2592
[ExifImageLength] => 4608
[InteroperabilityOffset] => 687
[SensingMethod] => 2
[SceneType] => �
[ExposureMode] => 0
[WhiteBalance] => 0
[FocalLengthIn35mmFilm] => 4
[SceneCaptureType] => 0
[GPSAltitudeRef] => 200/100
[GPSTimeStamp] => Array
(
[0] => 12/1
[1] => 51/1
[2] => 30/1
)
[GPSDateStamp] => 2017:06:19
[InterOperabilityIndex] => R98
[InterOperabilityVersion] => 0100
)
[path] => /Volumes/data/Development/php/laravel/51/public/uploads/images
[dir] => uploads/images
[filename] => IMG_20170619_195131.jpg
[basename] => IMG_20170619_195131
[dimensions] => Array
(
[square50] => Array
(
[path] => /Volumes/data/Development/php/laravel/51/public/uploads/images
[dir] => uploads/images/IMG_20170619_195131_square50.jpg
[filename] => IMG_20170619_195131_square50.jpg
[filepath] => /Volumes/data/Development/php/laravel/51/public/uploads/images/IMG_20170619_195131_square50.jpg
[filedir] => uploads/images/IMG_20170619_195131_square50.jpg
[width] => 50
[height] => 50
[filesize] => 1379716
[is_squared] => 1
)
[square100] => Array
(
[path] => /Volumes/data/Development/php/laravel/51/public/uploads/images
[dir] => uploads/images/IMG_20170619_195131_square100.jpg
[filename] => IMG_20170619_195131_square100.jpg
[filepath] => /Volumes/data/Development/php/laravel/51/public/uploads/images/IMG_20170619_195131_square100.jpg
[filedir] => uploads/images/IMG_20170619_195131_square100.jpg
[width] => 100
[height] => 100
[filesize] => 1379716
[is_squared] => 1
)
[square200] => Array
(
[path] => /Volumes/data/Development/php/laravel/51/public/uploads/images
[dir] => uploads/images/IMG_20170619_195131_square200.jpg
[filename] => IMG_20170619_195131_square200.jpg
[filepath] => /Volumes/data/Development/php/laravel/51/public/uploads/images/IMG_20170619_195131_square200.jpg
[filedir] => uploads/images/IMG_20170619_195131_square200.jpg
[width] => 200
[height] => 200
[filesize] => 1379716
[is_squared] => 1
)
[square400] => Array
(
[path] => /Volumes/data/Development/php/laravel/51/public/uploads/images
[dir] => uploads/images/IMG_20170619_195131_square400.jpg
[filename] => IMG_20170619_195131_square400.jpg
[filepath] => /Volumes/data/Development/php/laravel/51/public/uploads/images/IMG_20170619_195131_square400.jpg
[filedir] => uploads/images/IMG_20170619_195131_square400.jpg
[width] => 400
[height] => 400
[filesize] => 1379716
[is_squared] => 1
)
[size50] => Array
(
[path] => /Volumes/data/Development/php/laravel/51/public/uploads/images
[dir] => uploads/images/IMG_20170619_195131_size50.jpg
[filename] => IMG_20170619_195131_size50.jpg
[filepath] => /Volumes/data/Development/php/laravel/51/public/uploads/images/IMG_20170619_195131_size50.jpg
[filedir] => uploads/images/IMG_20170619_195131_size50.jpg
[width] => 28
[height] => 50
[filesize] => 1379716
[is_squared] =>
)
[size100] => Array
(
[path] => /Volumes/data/Development/php/laravel/51/public/uploads/images
[dir] => uploads/images/IMG_20170619_195131_size100.jpg
[filename] => IMG_20170619_195131_size100.jpg
[filepath] => /Volumes/data/Development/php/laravel/51/public/uploads/images/IMG_20170619_195131_size100.jpg
[filedir] => uploads/images/IMG_20170619_195131_size100.jpg
[width] => 56
[height] => 100
[filesize] => 1379716
[is_squared] =>
)
[size200] => Array
(
[path] => /Volumes/data/Development/php/laravel/51/public/uploads/images
[dir] => uploads/images/IMG_20170619_195131_size200.jpg
[filename] => IMG_20170619_195131_size200.jpg
[filepath] => /Volumes/data/Development/php/laravel/51/public/uploads/images/IMG_20170619_195131_size200.jpg
[filedir] => uploads/images/IMG_20170619_195131_size200.jpg
[width] => 112
[height] => 200
[filesize] => 1379716
[is_squared] =>
)
[size400] => Array
(
[path] => /Volumes/data/Development/php/laravel/51/public/uploads/images
[dir] => uploads/images/IMG_20170619_195131_size400.jpg
[filename] => IMG_20170619_195131_size400.jpg
[filepath] => /Volumes/data/Development/php/laravel/51/public/uploads/images/IMG_20170619_195131_size400.jpg
[filedir] => uploads/images/IMG_20170619_195131_size400.jpg
[width] => 225
[height] => 400
[filesize] => 1379716
[is_squared] =>
)
)
)
)
Matriphe\Imageupload\ImageuploadModel Object
(
[thumbnailKeys:protected] => Array
(
[0] => path
[1] => dir
[2] => filename
[3] => filepath
[4] => filedir
[5] => width
[6] => height
[7] => filesize
)
[fillable:protected] => Array
(
[0] => original_filename
[1] => original_filepath
[2] => original_filedir
[3] => original_extension
[4] => original_mime
[5] => original_filesize
[6] => original_width
[7] => original_height
[8] => path
[9] => dir
[10] => filename
[11] => basename
[12] => exif
)
[connection:protected] =>
[table:protected] => image_uploads
[primaryKey:protected] => id
[perPage:protected] => 15
[incrementing] => 1
[timestamps] => 1
[attributes:protected] => Array
(
[original_filename] => IMG_20170619_195131.jpg
[original_filepath] => /Volumes/data/Development/php/laravel/51/public/uploads/images/IMG_20170619_195131.jpg
[original_filedir] => uploads/images/IMG_20170619_195131.jpg
[original_extension] => jpg
[original_mime] => image/jpeg
[original_filesize] => 1379716
[original_width] => 2592
[original_height] => 4608
[exif] => {"FileName":"php19qj3X","FileDateTime":1500906046,"FileSize":1379716,"FileType":2,"MimeType":"image\/jpeg","SectionsFound":"ANY_TAG, IFD0, THUMBNAIL, EXIF, GPS, INTEROP","COMPUTED":{"html":"width=\"2592\" height=\"4608\"","Height":4608,"Width":2592,"IsColor":1,"ByteOrderMotorola":1,"ApertureFNumber":"f\/2.0","Thumbnail.FileType":2,"Thumbnail.MimeType":"image\/jpeg"},"Make":"Xiaomi","Model":"Redmi Note3","XResolution":"72\/1","YResolution":"72\/1","ResolutionUnit":2,"Software":"kenzo-user 6.0.1 MMB29M 7.6.7 release-keys","DateTime":"2017:06:19 19:51:31","YCbCrPositioning":1,"Exif_IFD_Pointer":234,"GPS_IFD_Pointer":718,"THUMBNAIL":{"Compression":6,"XResolution":"72\/1","YResolution":"72\/1","ResolutionUnit":2,"JPEGInterchangeFormat":898,"JPEGInterchangeFormatLength":15696},"ExposureTime":"1\/33","FNumber":"200\/100","ExposureProgram":0,"ISOSpeedRatings":854,"ExifVersion":"0220","DateTimeOriginal":"2017:06:19 19:51:31","DateTimeDigitized":"2017:06:19 19:51:31","ComponentsConfiguration":"\u0001\u0002\u0003\u0000","ShutterSpeedValue":"5058\/1000","ApertureValue":"200\/100","BrightnessValue":"300\/100","MeteringMode":1,"Flash":16,"FocalLength":"357\/100","SubSecTime":"123298","SubSecTimeOriginal":"123298","SubSecTimeDigitized":"123298","FlashPixVersion":"0100","ColorSpace":1,"ExifImageWidth":2592,"ExifImageLength":4608,"InteroperabilityOffset":687,"SensingMethod":2,"SceneType":"\u0001","ExposureMode":0,"WhiteBalance":0,"FocalLengthIn35mmFilm":4,"SceneCaptureType":0,"GPSAltitudeRef":"200\/100","GPSTimeStamp":["12\/1","51\/1","30\/1"],"GPSDateStamp":"2017:06:19","InterOperabilityIndex":"R98","InterOperabilityVersion":"0100"}
[path] => /Volumes/data/Development/php/laravel/51/public/uploads/images
[dir] => uploads/images
[filename] => IMG_20170619_195131.jpg
[basename] => IMG_20170619_195131
[updated_at] => 2017-07-24 21:20:53
[created_at] => 2017-07-24 21:20:53
[id] => 1
)
[original:protected] => Array
(
[original_filename] => IMG_20170619_195131.jpg
[original_filepath] => /Volumes/data/Development/php/laravel/51/public/uploads/images/IMG_20170619_195131.jpg
[original_filedir] => uploads/images/IMG_20170619_195131.jpg
[original_extension] => jpg
[original_mime] => image/jpeg
[original_filesize] => 1379716
[original_width] => 2592
[original_height] => 4608
[exif] => {"FileName":"php19qj3X","FileDateTime":1500906046,"FileSize":1379716,"FileType":2,"MimeType":"image\/jpeg","SectionsFound":"ANY_TAG, IFD0, THUMBNAIL, EXIF, GPS, INTEROP","COMPUTED":{"html":"width=\"2592\" height=\"4608\"","Height":4608,"Width":2592,"IsColor":1,"ByteOrderMotorola":1,"ApertureFNumber":"f\/2.0","Thumbnail.FileType":2,"Thumbnail.MimeType":"image\/jpeg"},"Make":"Xiaomi","Model":"Redmi Note3","XResolution":"72\/1","YResolution":"72\/1","ResolutionUnit":2,"Software":"kenzo-user 6.0.1 MMB29M 7.6.7 release-keys","DateTime":"2017:06:19 19:51:31","YCbCrPositioning":1,"Exif_IFD_Pointer":234,"GPS_IFD_Pointer":718,"THUMBNAIL":{"Compression":6,"XResolution":"72\/1","YResolution":"72\/1","ResolutionUnit":2,"JPEGInterchangeFormat":898,"JPEGInterchangeFormatLength":15696},"ExposureTime":"1\/33","FNumber":"200\/100","ExposureProgram":0,"ISOSpeedRatings":854,"ExifVersion":"0220","DateTimeOriginal":"2017:06:19 19:51:31","DateTimeDigitized":"2017:06:19 19:51:31","ComponentsConfiguration":"\u0001\u0002\u0003\u0000","ShutterSpeedValue":"5058\/1000","ApertureValue":"200\/100","BrightnessValue":"300\/100","MeteringMode":1,"Flash":16,"FocalLength":"357\/100","SubSecTime":"123298","SubSecTimeOriginal":"123298","SubSecTimeDigitized":"123298","FlashPixVersion":"0100","ColorSpace":1,"ExifImageWidth":2592,"ExifImageLength":4608,"InteroperabilityOffset":687,"SensingMethod":2,"SceneType":"\u0001","ExposureMode":0,"WhiteBalance":0,"FocalLengthIn35mmFilm":4,"SceneCaptureType":0,"GPSAltitudeRef":"200\/100","GPSTimeStamp":["12\/1","51\/1","30\/1"],"GPSDateStamp":"2017:06:19","InterOperabilityIndex":"R98","InterOperabilityVersion":"0100"}
[path] => /Volumes/data/Development/php/laravel/51/public/uploads/images
[dir] => uploads/images
[filename] => IMG_20170619_195131.jpg
[basename] => IMG_20170619_195131
[updated_at] => 2017-07-24 21:20:53
[created_at] => 2017-07-24 21:20:53
[id] => 1
)
[relations:protected] => Array
(
)
[hidden:protected] => Array
(
)
[visible:protected] => Array
(
)
[appends:protected] => Array
(
)
[guarded:protected] => Array
(
[0] => *
)
[dates:protected] => Array
(
)
[dateFormat:protected] =>
[casts:protected] => Array
(
)
[touches:protected] => Array
(
)
[observables:protected] => Array
(
)
[with:protected] => Array
(
)
[morphClass:protected] =>
[exists] => 1
[wasRecentlyCreated] => 1
)
- Support output type
json
,array
,collection
, anddb
- Add support to change output type using
output()
method - Remove support for Laravel 5.0 and 5.1
- Start using semantic version (semver) for versioning
- Using Intervention for image processing
- Support only GD and Imagick (ImageMagick), Gmagick is not supported anymore
- Using exception for better error handling
- Last version that follow Laravel versioning
- Last version that use Imagine library
- Utilize Laravel's filesystem to store uploaded file.
- Add Lumen support
The MIT License (MIT). Please see License File for more information.