Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 1 - Configurar corretamente o HTML
- 2 - Contar a quantidade de imagens que devem ser enviadas
- 3 - Faz a configuração da biblioteca Upload do CI e inicializa
- 4 - Parte pro "for" com a variável dinâmica
- 5 - Usa uma função privada para escrever no banco de dados as imagens
- Obs: Use sempre var_dump, print_r, echo pra debugar
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Upload de imagens</title>
- <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css">
- </head>
- <body class="container" style="margin-top:50px">
- <form action="<?php echo base_url(uri_string()) ?>" method="POST" enctype="multipart/form-data">
- <div class="row">
- <div class="col-md-9">
- <label for="userfile">Selecione os arquivos</label>
- <input type="file" name="userfile[]" id="userfile" class="form-control" required multiple />
- </div>
- <div class="col-md-3">
- <label for="arquivos"> </label>
- <input type="submit" class="btn btn-block btn-success" value="Enviar fotos" />
- <input type="hidden" name="nome_noivo" value="Marcos Vinicius" />
- </div>
- </div>
- </form>
- <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js"></script>
- </body>
- </html>
- <?php defined('BASEPATH') OR exit('No direct script access allowed');
- class Apagar extends CI_Controller {
- public function __construct(){
- parent::__construct();
- }
- /**
- * Upload de arquivos multiplos
- * @return [type] [description]
- */
- public function upload(){
- // verificar se algo está sendo enviado
- if ($_SERVER['REQUEST_METHOD'] == 'POST'){
- // armazenando os dados
- $form = $_POST;
- // contador de arquivos
- $arquivos = count($_FILES['userfile']['name']);
- // começar a configurar as propriedades do upload
- $configuracao['upload_path'] = "{$_SERVER['DOCUMENT_ROOT']}/assets/testes/uploads/";
- $configuracao['allowed_types'] = "jpg|jpeg|gif|png|bmp|xls|xlsx|pdf|doc|docx";
- $configuracao['encrypt_name'] = TRUE;
- $configuracao['max_size'] = '5000';
- $configuracao['max_width'] = '5000';
- $configuracao['max_height'] = '5000';
- // inicializando a classe de upload
- $this->load->library("upload", $configuracao);
- // enviando os arquivos em um loop para pasta de destino
- for ($i = 0; $i < $arquivos; $i++){
- // juntando as propriedades de cada imagem
- $_FILES["userfile_{$i}"] = [
- 'name' => $_FILES['userfile']['name'][$i],
- 'tmp_name' => $_FILES['userfile']['tmp_name'][$i],
- 'size' => $_FILES['userfile']['size'][$i],
- 'error' => $_FILES['userfile']['error'][$i],
- 'type' => $_FILES['userfile']['type'][$i],
- ];
- // fazendo upload da imagem
- if($this->upload->do_upload("userfile_{$i}") == TRUE){
- // acessando o nome da imagem para colocar dentro pra DB
- $imagem = $this->upload->data()['file_name'];
- // criando um array com nome da imagem para enviar pra DB
- $dados_da_imagem = [
- 'imagem' => $imagem,
- 'cadastro' => date("Y-m-d H:i:s")
- ];
- // manter o conceito de tarefa única, responsabilidade única
- $escrever = $this->escreverImagemDB($dados_da_imagem);
- }
- }
- }
- // renderizando a view do formulário
- $this->load->view("testes/upload");
- }
- /**
- * Registrar a imagem no banco de dados
- * @param [type] $imagem [description]
- * @return [type] [description]
- */
- private function escreverImagemDB($imagem){
- // colocar na model
- $this->db->insert('temporario', $imagem);
- }
- }
- /* End of file Apagar.php */
- /* Location: ./application/controllers/Apagar.php */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement