定制 lliure/picup 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

lliure/picup

Composer 安装命令:

composer require lliure/picup

包简介

Pacote upload de imagens por javascript

README 文档

README

Utilização básica

No arquivo referente ao layout, deve se utilizar os comandos javaScript para instanciar o pic-up

<div id="pic-up"></div>

<script>
  $('#pic-up').picup({
      name: 'imagem'
  });
</script>

É obrigatório definir o name para seu uso. Automaticamente será definido o enctype do seu formulário.

Após submeter o formulário, inicie a classe para realizar o upload

$picUp = new Picup('imagem'); //A string 'imagem' refere-se ao mesmo valor informado no index 'name'
$imagens = $picUp->upload('uploadTest/sub1');

Cortando imagens

Caso queria fazer um corte, poderá usar o metodo cut() da seguinte forma.

simplificando ficaria assim:

$picUp = new Picup('imagem');
$imagens = $picUp->upload('uploadTest/sub1',  $picUp->cut(500, 500));

caso queria fazer mais de um corte:

$picUp = new Picup('imagem');
$corte1 = $picUp->upload('uploadTest/sub1',  $picUp->cut(500, 500));
$corte2 = $picUp->upload('uploadTest/sub1/thumb',  $picUp->cut(100, 100));

O método cut() recebe 4 argumentos, sendo

  • @param $widthFinal

  • @param $heightFinal

  • @param string $type

    • c = Corte, corta a imagem centralizada no tamanho escolhido
    • o = Objetiva, redimencina para o tamanho final (adciona tranparencia para completar a medida menor, e converte para png)
    • p = Proporcional, mantendo a medida maior da imagem igual a medida menor da thumb
    • r = Relativo, a medida que estiver faltando é redimencionada para o valor relativo a original
    • x [Padrão] = maXimo, corta pelo tamanho escolhido sem alterar as proporções originais
  • @param string $posfix

  • @param string|boolean $renderOut

    • Nesse campo pode ser configurado o tipo do arquivo a ser salvo

    Exemplo: $picup->cut(200, 200, null, '__thumb', 'webp');
    Exemplo 2: $picup->cut(400, 400, 'o');

Método toWebp()

Método alias do cut, fazendo uma preconfiguração de corte de 500x500 em modo "p" e convertendo para webp

  • @param $w
  • @param $h

Método upload()

O método upload trabalha com dois argumentos sendo

  • @param $folder
  • @param null $files

Onde $folder, é o caminho onde será feito o upload, $files é o array contendo as imagens, esse parametro pode ser null assim utilizando os arquivos originais

Trabalhando com modificações no padrão

Aqui veremos algumas modificações no padrão normal da execução do pic-up

$('#pic-up').picup({
   buttonText: 'Escolher imagem',
   name: 'imagem',
   addFunction: function (img, opt) {
       return '<div><div><img src="' + img + '" width="80" /></div>'
        + '<div><label>Nome</label> <input name="label['+(opt != undefined ? opt.id : "" )+']" value="'+(opt != undefined && opt.label != undefined ? opt.label : "" )+'" /></div>'
           + '</div>';
   },
   deleteImg: function (content) {
      $(content).hide();
   },
   content: [
               {id: 32, img: "http://www.minhaurl.com/imagens/ec193cp84fzbww_1_26296.JPG", label: "teste 32"},
               {id: 41, img: "http://www.minhaurl.com/imagens/ec193cp84fzbww_1_26296.JPG", label: "teste 41"},
               {id: 33, img: 'http://www.minhaurl.com/imagens/ec193cp89ruoww_1_72676.jpg', label: "teste 33"}
           ]
 });

Perceba que temos novos parametros na utilização do pic-up, buttonText, addFunction, deleteImg e content.

buttonText, é o texto usado no botão de seleção das imagens

addFunction, é a função que gera a visualização basica das imagens, tanto já carregadas quando enviadas, é obrigatório o uso de dois argumentos em usa criação no exempo a cima tempos img e opt, o seu return sera exibido na tela para cada imagem carregada ou enviada.

deleteImg, é a função que realiza a visualização da deleção de uma imagem carregada ou enviada no caso, está ocultando seu conteudo, é importe que não seja removido o contet da imagem, pois isso implicara em problemas na execução, é necessario a utilização de um argumento, no exemplo content

content, é um objeto que monta as imagens carregadas, são necessários duas chaves para cada laço id e img, paramos além desse poderão ser utilizados na função addFunction que terão entrada pelo segundo argumento, como no exemplo opt.label

Tratando inputs adicionais

Todo input adicionar deverá passar pelo metodo filterInput() para um pré tratamento, como no exemplo tempo o input label

$_POST['label'] = $picUp->filterInput($_POST['label']);

Fazendo dessa forma o retorno na variavel $_POST['label'] seguindo o exemplo assima será:

$_POST['label'] = array(
   'new' => array(0 => 'lorem ipsum', 1 => 'dolor')
   'original' => array( 32 => 'teste 32', 33 => 'teste 33', 41 => 'teste 41')
);

Sendo que em new => array() temos os labels das novas imagens, e em original => array() as carregadas

Apagando imagens carregadas

O pic-up retorna após o submit as imagens que foram marcadas para serem apagadas, elas são retornadas na variavel $_POST['picup-delete-content'], que terá um array com o id passado e um boleam 0 para não apagar e 1 para apagar

[picup-delete-content] => Array
        (
            [imagem] => Array
                (
                    [32] => 0
                    [41] => 1
                    [33] => 0
                )

统计信息

  • 总下载量: 912
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 2
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2018-09-17

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固