rd7/imagemupload

该软件包已被废弃且不再维护。未建议替代软件包。
此软件包最新版本(v1.1.17)的许可信息不可用。

Laravel 图像上传包

v1.1.17 2021-03-12 04:33 UTC

README

您的贡献有助于维护此软件包并创建许多其他软件。请用心♥

捐款 PayPal

Laravel Imagem Upload

在 Laravel 中更轻松地上传图像

此软件包简化了图像的 上传和渲染,无需您创建文件夹和符号链接。上传图像并为您网站的不同尺寸进行缩放。

它能为您做什么

  • 将图像发送到非公开文件夹
  • 自动创建图像文件夹
  • 按需调整图像大小
  • 渲染图像并隐藏原始文件夹

安装

需要 Laravel >= 5.5 和 PHP 7.1

composer require rd7/imagemupload

使用示例

例如,不要加载一个 1200x1200 像素的图像以显示在 100x100 像素的缩略图中。最佳选择是拥有多个不同尺寸的图像。示例

exemplo-imagem 您可以根据需要拥有任意尺寸的图像。

发送一个图像

步骤 #1 在您的 HTML 表单中

<!--Para enviar apenas uma imagem-->
<input type="file" name="user" />

步骤 #2 在您的 Controller 中放置配置

use Rd7\ImagemUpload\ImagemUpload;

 public function __construct()
 {
 	$this->user = [
		'input_file' => 'user', //nome do input
		'destino' => 'users/', //Pasta que será criada automáticamente dentro de storage/app/public/
    		'resolucao' => ['p' => ['h' => 200, 'w' => 200], 'm' => ['h' => 400, 'w' => 400], ...] //Não há limites de quantos tamanhos podem ser configuradas.
      ];
}
	
public function store(Request $request)
{
    $input = $request->all();

    $imagens = ImagemUpload::salva($this->user);
		//retorno: image-example_3fc5ac232a6e60a10ca20a90350954a9.jpg
    if ($imagens) {
	// a função retorna o novo nome da imagem. guarde em seu banco de dados.
	$input['imagem'] = $imagens;
    }
}

软件包将在 users/ 中创建 pm 文件夹

storage/app/public/users/p/image-example_3fc5ac232a6e60a10ca20a90350954a9.jpg 200X200 的图像

storage/app/public/users/m/image-example_3fc5ac232a6e60a10ca20a90350954a9.jpg 400x400 的图像

步骤 #3 渲染图像

<img src="{{ route('imagem.render', 'users/p/' . $user->imagem) }}" />

注意:请使用路由 'imagem.render' 来渲染图像,随后是文件夹名(users)和尺寸(p、m 等)。

删除一个图像

在您的 Controller 中

public function destroy($id)
{
	$user = User::find($id);
            
	$imagem = $user->imagem;

	$this->user['imagem'] = $imagem; // acrescente ao array o indice "imagem", e como valor, o nome da imagem.

	$user->delete();
	
	if (!empty($imagem)) {
		ImagemUpload::deleta($this->user); // $this->user é o array com todas as configurações de envio de imagens.
	}

	return redirect()->route('users.list')->with('msg', 'registro excluido com sucesso!');
}

注意: $this->user 是包含您图像发送设置的数组。函数 deleta() 将从各自的文件夹中删除所有图像。

发送多个图像

如果您要发送多个图像,操作很简单:步骤 #1 在您的 HTML 表单中

<input type="file" name="galeria[]" multiple />

步骤 #2 在您的 Controller 中放置配置

use Rd7\ImagemUpload\ImagemUpload;

 public function __construct()
 {
 	$this->galeria = [
		'input_file' => 'galeria', //nome do input
		'destino' => 'galeria/',
    		'resolucao' => ['p' => ['h' => 200, 'w' => 200], 'm' => ['h' => 400, 'w' => 400], ...]
      ];
}
	
public function store(Request $request)
{
	$input = $request->all();

	$imagens = ImagemUpload::salva($this->galeria);
	/*
	$imagens retorna: 
	array (
		image-example_3fc5ac232a6e60a10ca20a90350954a9.jpg,
		image-example_3fc5ac232a6e60a10ca20a90350954a9.jpg
	)
	*/
	if ($imagens) {
		// guarde o nome das imagens em seu banco de dados
		$input['imagens'] = $imagens;
	}
}

注意:发送多个图像时,您将收到一个包含新图像名称的数组。

仅移动一个图像并保持原始尺寸

 $this->user = [
 	'input_file' => 'user',
	'destino' => 'users/'
  ];

调整图像尺寸并保持原始尺寸

 $this->user = [
 	'input_file' => 'user',
	'destino' => 'users/',
	'resolucao' => ['p' => ['h' => 200, 'w' => 200], 'm' => ['h' => 400, 'w' => 400], 'pasta_original'] 
	// Apenas coloque o nome do indice que será o nome da pasta com as imagens originais.
  ];

更多信息将添加到此文档。如有疑问,请联系。

罗德里戈·德·索萨 - rd7.rodrigo@gmail.com

https://github.com/rodrigodesouza/imagemupload/