fernandozueet/php-upload-server

上传和图像处理,裁剪、缩放、水印、滤镜、翻转、旋转、图像文本和伽玛校正

1.2.1 2020-01-17 12:48 UTC

This package is auto-updated.

Last update: 2024-09-29 05:28:14 UTC


README

包中包含用于简化服务器上图像上传和处理的函数。

安全通知

为确保服务器上上传的安全性,强烈建议将文件上传到网站公共文件夹之外。

此库不验证任何文件的提交。请使用您选择的验证库。

文档

需求

这将安装PHP上传和图像处理以及所有必需的依赖项。PHP上传和图像处理需要PHP 7.0.0或更高版本。要创建派生图像,您的服务器上应安装GD

安装

建议您使用Composer来安装Slim。

$ composer require fernandozueet/php-upload-server

库实例

$upload = new FzUpload\Core();

设置文件

//url file
$upload->setFile([
    'http://especiais.g1.globo.com/educacao/guia-de-carreiras/2017/teste-vocacional/assets/teste_vocacional_logo.png',
    'https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png'
]);
//php file
$upload->setFile($_FILES['file_x']);
//slim framework file
$upload->setFile($request->getUploadedFiles());
//symphony or laravel framework file
$upload->setFile($request->file_x);

获取文件

//get file
$return = $upload->getFile();
//value returned
array:2 [
  0 => array:9 [
    "temp" => "C:\xampp\tmp\php2FA2.tmp"
    "extension" => "jpg"
    "image" => array:2 [
      "width" => 500
      "height" => 500
    ]
    "mimeType" => "image/jpeg"
    "name" => "45373949_1GG"
    "completeName" => "45373949_1GG.jpg"
    "randomName" => "c42264551c22b94992a128b39ae84986"
    "completeRandomName" => "c42264551c22b94992a128b39ae84986.jpg"
    "size" => 32643
  ]
  1 => array:9 [
    "temp" => "C:\xampp\tmp\php2FA3.tmp"
    "extension" => "jpg"
    "image" => array:2 [
      "width" => 1200
      "height" => 1200
    ]
    "mimeType" => "image/jpeg"
    "name" => "guarda-roupa-casal-com-espelho-3-portas-de-correr-lara-ciwt-D_NQ_NP_685005-MLB25713052454_062017-F"
    "completeName" => "guarda-roupa-casal-com-espelho-3-portas-de-correr-lara-ciwt-D_NQ_NP_685005-MLB25713052454_062017-F.jpg"
    "randomName" => "c099d9ec06382af2ba3985aa67b4025e"
    "completeRandomName" => "c099d9ec06382af2ba3985aa67b4025e.jpg"
    "size" => 221866
  ]
]

简单完整示例

//lib instance
$upload = new FzUpload\Core();

//custom name (optional)
//$upload->setFileName('newName');

//original name files (optional)
//$upload->setOriginalName();

//set file
$upload->setFile(['https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png']);

//get file 
$files = $upload->getFile();

//save file in C:\teste\p and C:\teste\m
$upload->setSaveDirectory(["C:\\teste\p","C:\\teste\m"]);

//save image as. Possible values: (jpg|quality - 0 to 100, png|quality - 0 to 100, gif, webp|quality - 0 to 100)
$upload->setSaveImageAs(['jpg|100','png|100','gif','webp|100']);

//upload files
$upload->uploadFile();

//save file to local server
if($upload->saveLocal()) {

    //files uploaded
    $filesUploaded = $upload->getSavedFiles();

}else{
    //error
}

图像缩放

//lib instance
$upload = new FzUpload\Core();

//set file
$upload->setFile(['https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png']);

//save file in C:\teste\p and C:\teste\m
$upload->setSaveDirectory(["C:\\teste\p","C:\\teste\m"]);

//save image as. Possible values: (jpg|quality - 0 to 100, png|quality - 0 to 100, gif, webp|quality - 0 to 100)
$upload->setSaveImageAs(['jpg|100','png|100','gif','webp|100']);

//image resize 
//int $width, int $height, bool $proportion = true
$upload->imageResize(100, 200);

//save file to local server
if($upload->saveLocal()) {
    //success
}else{
    //error
}

图像裁剪

//lib instance
$upload = new FzUpload\Core();

//set file
$upload->setFile(['https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png']);

//save file in C:\teste\p and C:\teste\m
$upload->setSaveDirectory(["C:\\teste\p","C:\\teste\m"]);

//save image as. Possible values: (jpg|quality - 0 to 100, png|quality - 0 to 100, gif, webp|quality - 0 to 100)
$upload->setSaveImageAs(['jpg|100','png|100','gif','webp|100']);

//image crop
//int $x, int $y, int $width, int $height
$upload->imageCrop(2, 2, 300, 200);

//save file to local server
if($upload->saveLocal()) {
    //success
}else{
    //error
}

图像翻转

//lib instance
$upload = new FzUpload\Core();

//set file
$upload->setFile(['https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png']);

//save file in C:\teste\p and C:\teste\m
$upload->setSaveDirectory(["C:\\teste\p","C:\\teste\m"]);

//save image as. Possible values: (jpg|quality - 0 to 100, png|quality - 0 to 100, gif, webp|quality - 0 to 100)
$upload->setSaveImageAs(['jpg|100','png|100','gif','webp|100']);

//image flip
//int mode - Possible values: (IMG_FLIP_HORIZONTAL, IMG_FLIP_VERTICAL, IMG_FLIP_BOTH)
$upload->imageFlip(IMG_FLIP_VERTICAL);

//save file to local server
if($upload->saveLocal()) {
    //success
}else{
    //error
}

图像伽玛校正

//lib instance
$upload = new FzUpload\Core();

//set file
$upload->setFile(['https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png']);

//save file in C:\teste\p and C:\teste\m
$upload->setSaveDirectory(["C:\\teste\p","C:\\teste\m"]);

//save image as. Possible values: (jpg|quality - 0 to 100, png|quality - 0 to 100, gif, webp|quality - 0 to 100)
$upload->setSaveImageAs(['jpg|100','png|100','gif','webp|100']);

//image gamma correct
//float $inputgamma, float $outputgamma
$upload->imageGammaCorrect(1.0, 1.537);

//save file to local server
if($upload->saveLocal()) {
    //success
}else{
    //error
}

图像旋转

//lib instance
$upload = new FzUpload\Core();

//set file
$upload->setFile(['https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png']);

//save file in C:\teste\p and C:\teste\m
$upload->setSaveDirectory(["C:\\teste\p","C:\\teste\m"]);

//save image as. Possible values: (jpg|quality - 0 to 100, png|quality - 0 to 100, gif, webp|quality - 0 to 100)
$upload->setSaveImageAs(['jpg|100','png|100','gif','webp|100']);

//image rotate
//int $rotate - Possible values: (0 to 360)
$upload->imageRotate(80);

//save file to local server
if($upload->saveLocal()) {
    //success
}else{
    //error
}

图像文本

//lib instance
$upload = new FzUpload\Core();

//set file
$upload->setFile(['https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png']);

//save file in C:\teste\p and C:\teste\m
$upload->setSaveDirectory(["C:\\teste\p","C:\\teste\m"]);

//save image as. Possible values: (jpg|quality - 0 to 100, png|quality - 0 to 100, gif, webp|quality - 0 to 100)
$upload->setSaveImageAs(['jpg|100','png|100','gif','webp|100']);

//image text
//string $text, string $fontFile, int $size, array $rgbColor, int $angle - (0 to 90), int $x, int $y
$upload->imageText('Test test', 'C:\Windows\Fonts\arial.ttf', 16, [255,0,0], 0, 30, 30);

//save file to local server
if($upload->saveLocal()) {
    //success
}else{
    //error
}

图像水印

//lib instance
$upload = new FzUpload\Core();

//set file
$upload->setFile(['https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png']);

//save file in C:\teste\p and C:\teste\m
$upload->setSaveDirectory(["C:\\teste\p","C:\\teste\m"]);

//save image as. Possible values: (jpg|quality - 0 to 100, png|quality - 0 to 100, gif, webp|quality - 0 to 100)
$upload->setSaveImageAs(['jpg|100','png|100','gif','webp|100']);

//image watermarks
//int $bottom, int $right, string $imageLogo
$upload->imageWatermarks(10, 10, 'C:\teste\logo.png');

//save file to local server
if($upload->saveLocal()) {
    //success
}else{
    //error
}

图像负滤镜

//lib instance
$upload = new FzUpload\Core();

//set file
$upload->setFile(['https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png']);

//save file in C:\teste\p and C:\teste\m
$upload->setSaveDirectory(["C:\\teste\p","C:\\teste\m"]);

//save image as. Possible values: (jpg|quality - 0 to 100, png|quality - 0 to 100, gif, webp|quality - 0 to 100)
$upload->setSaveImageAs(['jpg|100','png|100','gif','webp|100']);

//image filter
$upload->imageFilter(IMG_FILTER_NEGATE);

//save file to local server
if($upload->saveLocal()) {
    //success
}else{
    //error
}

图像灰度滤镜

//lib instance
$upload = new FzUpload\Core();

//set file
$upload->setFile(['https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png']);

//save file in C:\teste\p and C:\teste\m
$upload->setSaveDirectory(["C:\\teste\p","C:\\teste\m"]);

//save image as. Possible values: (jpg|quality - 0 to 100, png|quality - 0 to 100, gif, webp|quality - 0 to 100)
$upload->setSaveImageAs(['jpg|100','png|100','gif','webp|100']);

//image filter
$upload->imageFilter(IMG_FILTER_GRAYSCALE);

//save file to local server
if($upload->saveLocal()) {
    //success
}else{
    //error
}

图像边缘检测滤镜

//lib instance
$upload = new FzUpload\Core();

//set file
$upload->setFile(['https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png']);

//save file in C:\teste\p and C:\teste\m
$upload->setSaveDirectory(["C:\\teste\p","C:\\teste\m"]);

//save image as. Possible values: (jpg|quality - 0 to 100, png|quality - 0 to 100, gif, webp|quality - 0 to 100)
$upload->setSaveImageAs(['jpg|100','png|100','gif','webp|100']);

//image filter
$upload->imageFilter(IMG_FILTER_EDGEDETECT);

//save file to local server
if($upload->saveLocal()) {
    //success
}else{
    //error
}

图像浮雕滤镜

//lib instance
$upload = new FzUpload\Core();

//set file
$upload->setFile(['https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png']);

//save file in C:\teste\p and C:\teste\m
$upload->setSaveDirectory(["C:\\teste\p","C:\\teste\m"]);

//save image as. Possible values: (jpg|quality - 0 to 100, png|quality - 0 to 100, gif, webp|quality - 0 to 100)
$upload->setSaveImageAs(['jpg|100','png|100','gif','webp|100']);

//image filter
$upload->imageFilter(IMG_FILTER_EMBOSS);

//save file to local server
if($upload->saveLocal()) {
    //success
}else{
    //error
}

图像高斯模糊滤镜

//lib instance
$upload = new FzUpload\Core();

//set file
$upload->setFile(['https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png']);

//save file in C:\teste\p and C:\teste\m
$upload->setSaveDirectory(["C:\\teste\p","C:\\teste\m"]);

//save image as. Possible values: (jpg|quality - 0 to 100, png|quality - 0 to 100, gif, webp|quality - 0 to 100)
$upload->setSaveImageAs(['jpg|100','png|100','gif','webp|100']);

//image filter
$upload->imageFilter(IMG_FILTER_GAUSSIAN_BLUR);

//save file to local server
if($upload->saveLocal()) {
    //success
}else{
    //error
}

图像选择性模糊滤镜

//lib instance
$upload = new FzUpload\Core();

//set file
$upload->setFile(['https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png']);

//save file in C:\teste\p and C:\teste\m
$upload->setSaveDirectory(["C:\\teste\p","C:\\teste\m"]);

//save image as. Possible values: (jpg|quality - 0 to 100, png|quality - 0 to 100, gif, webp|quality - 0 to 100)
$upload->setSaveImageAs(['jpg|100','png|100','gif','webp|100']);

//image filter
$upload->imageFilter(IMG_FILTER_SELECTIVE_BLUR);

//save file to local server
if($upload->saveLocal()) {
    //success
}else{
    //error
}

图像均值移除滤镜

//lib instance
$upload = new FzUpload\Core();

//set file
$upload->setFile(['https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png']);

//save file in C:\teste\p and C:\teste\m
$upload->setSaveDirectory(["C:\\teste\p","C:\\teste\m"]);

//save image as. Possible values: (jpg|quality - 0 to 100, png|quality - 0 to 100, gif, webp|quality - 0 to 100)
$upload->setSaveImageAs(['jpg|100','png|100','gif','webp|100']);

//image filter
$upload->imageFilter(IMG_FILTER_MEAN_REMOVAL);

//save file to local server
if($upload->saveLocal()) {
    //success
}else{
    //error
}

图像平滑滤镜

//lib instance
$upload = new FzUpload\Core();

//set file
$upload->setFile(['https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png']);

//save file in C:\teste\p and C:\teste\m
$upload->setSaveDirectory(["C:\\teste\p","C:\\teste\m"]);

//save image as. Possible values: (jpg|quality - 0 to 100, png|quality - 0 to 100, gif, webp|quality - 0 to 100)
$upload->setSaveImageAs(['jpg|100','png|100','gif','webp|100']);

//image filter
$upload->imageFilter(IMG_FILTER_SMOOTH);

//save file to local server
if($upload->saveLocal()) {
    //success
}else{
    //error
}

图像亮度滤镜

//lib instance
$upload = new FzUpload\Core();

//set file
$upload->setFile(['https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png']);

//save file in C:\teste\p and C:\teste\m
$upload->setSaveDirectory(["C:\\teste\p","C:\\teste\m"]);

//save image as. Possible values: (jpg|quality - 0 to 100, png|quality - 0 to 100, gif, webp|quality - 0 to 100)
$upload->setSaveImageAs(['jpg|100','png|100','gif','webp|100']);

//image filter - (-255 to 255)
$upload->imageFilter(IMG_FILTER_BRIGHTNESS, 100);

//save file to local server
if($upload->saveLocal()) {
    //success
}else{
    //error
}

图像对比度滤镜

//lib instance
$upload = new FzUpload\Core();

//set file
$upload->setFile(['https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png']);

//save file in C:\teste\p and C:\teste\m
$upload->setSaveDirectory(["C:\\teste\p","C:\\teste\m"]);

//save image as. Possible values: (jpg|quality - 0 to 100, png|quality - 0 to 100, gif, webp|quality - 0 to 100)
$upload->setSaveImageAs(['jpg|100','png|100','gif','webp|100']);

//image filter - (-100 to 100)
$upload->imageFilter(IMG_FILTER_CONTRAST, -50);

//save file to local server
if($upload->saveLocal()) {
    //success
}else{
    //error
}

图像像素化滤镜

//lib instance
$upload = new FzUpload\Core();

//set file
$upload->setFile(['https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png']);

//save file in C:\teste\p and C:\teste\m
$upload->setSaveDirectory(["C:\\teste\p","C:\\teste\m"]);

//save image as. Possible values: (jpg|quality - 0 to 100, png|quality - 0 to 100, gif, webp|quality - 0 to 100)
$upload->setSaveImageAs(['jpg|100','png|100','gif','webp|100']);

//image filter 
$upload->imageFilter(IMG_FILTER_PIXELATE, 3);

//save file to local server
if($upload->saveLocal()) {
    //success
}else{
    //error
}

图像着色滤镜

//lib instance
$upload = new FzUpload\Core();

//set file
$upload->setFile(['https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png']);

//save file in C:\teste\p and C:\teste\m
$upload->setSaveDirectory(["C:\\teste\p","C:\\teste\m"]);

//save image as. Possible values: (jpg|quality - 0 to 100, png|quality - 0 to 100, gif, webp|quality - 0 to 100)
$upload->setSaveImageAs(['jpg|100','png|100','gif','webp|100']);

//image filter 
//arg1 (0 to 255), arg2 (0 to 255), arg3 (0 to 255), arg4 (0 to 127)
$upload->imageFilter(IMG_FILTER_COLORIZE, 64, 193, 198, 50);

//save file to local server
if($upload->saveLocal()) {
    //success
}else{
    //error
}

贡献

有关详细信息,请参阅CONTRIBUTING

安全

如果您发现与安全相关的问题,请通过电子邮件fernandozueet@hotmail.com联系,而不是使用问题跟踪器。

致谢

许可协议

PHP上传和图像处理遵循MIT许可协议。有关更多信息,请参阅许可文件