image appears in explorer but you can not see

1

I'm uploading files with html5 , ajax and php .

All is well, the recording in the bank is done, the upload is done, but the image, when you see it in windows explorer, even though it is there, but you can not see it.

The name is correct, it has the extension.

It looks like a uploader flaw.

What can be done?

Follow the code:

FORM

<div class="plano">

  <h1 class="titulos">Cadastro de Plano</h1>

  <form method="post" class="planoCadastrar"  method="post" enctype="multipart/form-data">

    <input type="text" name="nomePlano" id="nomePlano" class="typeTextMedio" placeholder="Nome"  required /><br /><br />

    <textarea placeholder="Descrição" class="textarea" name="descricao" id="descricao" cols="93" rows="15" required></textarea><br /> <br />

    <div id="multiple_upload">
        <input type="hidden" id="arquivos" name="arquivos" />
        <input type="file" multiple 
               id="fotos" 
               name="fotos[]"
               accept=".jpg, .png, image/jpg, image/png" />
        <div id="message">Selecionar fotos</div> 
        <div id="lista"></div>
    </div>          

    <img class="spinner" src="../_img/_bannerImgs/spinner.gif" />          
    <input type="submit" class="btnAcesso" value="Enviar" />

    <label class="resposta"></label>

  </form><br /><br />

  <script> 
    $('.elevate-image').ezPlus({
        zoomType: 'inner',
        cursor: 'crosshair'     
    });
  </script>  

</div>  

JQuery

// JavaScript Document
$(document).ready(function(e) {

    $("div.conteudo div.plano form.planoEditar").on("submit", function() {

        var idPlano   = $("div.conteudo div.plano form.planoEditar input[type=hidden]#idPlano").val();
        var nomePlano = $("div.conteudo div.plano form.planoEditar input[type=text]#nomePlano").val();
        var descricao = $("div.conteudo div.plano form.planoEditar textarea#descricao").val();

        if ( nomePlano == "" || 
             idPlano   == "" || 
             descricao == "") {

            alert("Algum campo está vazio!");

            return false;

        } 
        $("div.conteudo div.plano form.planoEditar input[type=submit].btnAcesso").css('display', 'none');
        $("div.conteudo div.plano.planoEditar form img").css('display', 'block');

        $("div.conteudo div.plano form input[type=submit].btnAcesso").css('display', 'none');
        $("div.conteudo div.plano form img").css('display', 'block');

        var formData = new FormData(this); 

        $.ajax({
            url: "../_requeridos/editaPlano.php",
            type: 'POST',
            data: formData,
            beforeSend: function() {               
            },
            success: function (retorno) {

               $("div.conteudo div.plano form.planoEditar input[type=submit].btnAcesso").css('display', 'block');
               $("div.conteudo div.plano.planoEditar form img").css('display', 'none');

                if (retorno == 1) {
                  resposta = "Plano cadastrado com sucesso!";   
                } else {
                  resposta = "Erro no cadastro do Plano";
                }
                $(".resposta").css("display", "block");
                $(".resposta").html(resposta);     

            },
            cache: false,
            contentType: false,
            processData: false
        });

        return false;

    });

});

php

<?php
    require_once "../_controles/_conexao/Conexao.php";
    require_once "../_controles/_util/PhpUtil.php";     
    require_once "../_controles/_util/Constantes.php";      
    require_once "../_controles/_models/Planos.php";    
    require_once "../_controles/_models/Fotos.php";
    require_once "../_controles/_models/Upload.php";
    require_once "../_controles/_daos/PlanosDao.php";
    require_once "../_controles/_daos/FotosDao.php";
    require_once "../_controles/_daos/UploadDao.php";

    $connection = new Conexao(); 
    $conexao = $connection->abreConexao();
    $phpUtil = new PhpUtil(); 
    $constantes = new Constantes(); 
    $planosDao = new PlanosDao($conexao);
    $fotosDao = new FotosDao($conexao);

    $nomePlano = $_POST["nomePlano"];   
    $descricao = $_POST["descricao"];   

    $plano = new Planos(                 
                     $nomePlano,
                     $descricao);

    $cadastro = $planosDao->cadastrar($plano);

    $ultimoId = $planosDao->ultimoIdCadastrado();

    require_once "upload.php";  

    echo $cadastro ? 1 : 2;

?>

upload.php

<?php
    ///////////////////////////UPLOAD DAS FOTOS////////////////////////////////////       
    $arquivos1 = explode ("|", $_POST["arquivos"]);  
    $arquivos2 = $_FILES["fotos"];
    $arquivos = $fotosDao->arrayFotos($arquivos1, $arquivos2);

    if(sizeof($arquivos))  {

        foreach($arquivos as $fotografia) {

          $upload = new Upload($fotografia, "../_img/_fotos");

          $uploadDao = new UploadDao($upload);

          // tamanho de erro 5MB = 5 * 1024 * 1024 = 5242880
          $erro = $uploadDao->erro(5242880);

          if($erro[0] == 0)   {

              $envio = $uploadDao->uploadFile();                  

              if($envio[0]==0) ;

              $nomeImagem = $upload->getNomeBanco();

          } else {

              $phpUtil->erro($erro[1]);

          }

          $fotosDao->cadastrar ($ultimoId, $upload->getNomeBanco());

        }
    }
    ////////////////////////////UPLOAD DAS FOTOS////////////////////////////////////    
?>

See how it is in Windows Explorer

Ontime:

UploadDao.php

<?phpclassUploadDao{private$arquivo;publicfunction__construct($_upload){$this->arquivo=$_upload;}/*Errosdoarquivo;erro($_tamanho)Onde$_tamanhoéembits,ouseja,5MB-5*1024*1024=*/publicfunctionerro($_tamanho){$mensagem="Sem erros!";
        $erro = 0;

        if(isset($this->arquivo)) {

            if ( 
                $this->arquivo->getExtensao() != "JPG" &&  
                $this->arquivo->getExtensao() != "jpg" &&  
                $this->arquivo->getExtensao() != "JPEG" &&  
                $this->arquivo->getExtensao() != "jpeg" &&  
                $this->arquivo->getExtensao() != "PNG" && 
                $this->arquivo->getExtensao() != "png"
              ) {

                $mensagem = "Imagem precisa ser nos formatos: jpg, JPG, jpeg, JPEG, png, PNG";

                $erro = 1;

              } else if ($this->arquivo->getTamanho() >= $_tamanho ) {

                $mensagem = "Tamanho máximo da Imagem é de ".($_tamanho/(1024*1024))." MB";

                $erro = 2;

              }

        }

        return array($erro, $mensagem, $this->arquivo->getTamanho()/(1024*1024));
    }

    public function uploadFile() {              

        $erro = 0;
        $mensagem = "Sucesso";

        try {

            $urlEnvio = $this->arquivo->getEndereco()."/".$this->arquivo->getNomeBanco();

             move_uploaded_file($this->arquivo->getNomeTemporario(), $urlEnvio);             

        } catch (Exception $e) {

            $erro = 1;
            $mensagem = "falha no envio";
        }

        return array($erro, $mensagem);

    }

    private function geraMiniatura ($_largura, $_url) {             

        //CRIA UMA NOVA IMAGEM
        if( $this->arquivo->getExtensao() == "JPG" ||  $this->arquivo->getExtensao() == "jpg"  ) {

            $imagem_orig = ImageCreateFromJPEG($this->arquivo->getNomeTemporario());

        } else if( $this->arquivo->getExtensao() == "JPEG" || $this->arquivo->getExtensao() == "jpeg") {

            $imagem_orig = ImageCreateFromJPEG($this->arquivo->getNomeTemporario());

        } else if( $this->arquivo->getExtensao() == "PNG" || $this->arquivo->getExtensao() == "png") {

            $imagem_orig = ImageCreateFromPNG($this->arquivo->getNomeTemporario());

        }

        //LARGURA
        $pontoX = ImagesX($imagem_orig);
        //ALTURA
        $pontoY = ImagesY($imagem_orig); 

        //DEFINE OS PARÂMETROS DA MINIATURA
        $largura = $_largura;
        $altura = ($pontoY * $largura) / $pontoX;

        //CRIA O THUMBNAIL
        $imagem_fin = ImageCreateTrueColor($largura, $altura); 

        //COPIA A IMAGEM ORIGINAL PARA DENTRO
        ImageCopyResampled($imagem_fin, $imagem_orig, 0, 0, 0, 0, $largura+1, $altura+1, $pontoX, $pontoY); 

        //SALVA A IMAGEM
        ImageJPEG($imagem_fin, $_url,100); 

        //LIBERA A MEMÓRIA
        ImageDestroy($imagem_orig);
        ImageDestroy($imagem_fin);

    }


  }
?>

Upload.php

<?php

 class Upload {

    private $nome;
    private $nomeBanco;
    private $nomeTemporario;
    private $largura;
    private $altura;
    private $tamanho;
    private $endereco;
    private $extensao;


    public function __construct ($_file, $_url) {

        $dimensoes = getimagesize($_file["tmp_name"]);
        $this->extensao = pathinfo($_file["name"], PATHINFO_EXTENSION);         
        $this->nome = $_file["name"];
        $this->nomeBanco = $this->setNomeBanco();
        $this->nomeTemporario = $_file["tmp_name"];
        $this->largura = $dimensoes[0];
        $this->altura = $dimensoes[1];
        $this->tamanho = $_file["size"];
        $this->endereco = $_url;

    }

    public function setNomeBanco () {   
        return md5(uniqid(time())).".". $this->extensao;        
    }   

    public function getNome() {
        return $this->nome;
    }

    public function getNomeBanco() {
        return $this->nomeBanco;
    }

    public function getNomeTemporario() {
        return $this->nomeTemporario;
    }

    public function getLargura() {
        return $this->largura;
    }

    public function getAltura() {
        return $this->altura;
    }

    public function getTamanho() {
        return $this->tamanho;
    }

    public function getEndereco() {
        return $this->endereco;
    }

    public function getExtensao() {
        return $this->extensao;
    }

}

?>
    
asked by anonymous 24.05.2018 / 23:06

0 answers