Jump to content

Archived

This topic is now archived and is closed to further replies.

joelzsbit

Salvar imagem no banco usando o script compressed

Recommended Posts

Pessoal implementei o link (https://xkeshi.github.io/image-compressor/) no meu site para fazer a compressão de imagens, porem preciso que essa imagem seja salva no banco.

Não estou conseguindo pegar essa imagem comprimida e enviar para um arquivo salvar.php que é o responsável para salvar no banco.

 

A imagem comprimida fica nesse bloco:

<div class="w-100 text-center" v-if="outputURL">
<img class="mw-100" :src="outputURL" :alt="output.name">
	<div class="mt-2">
		<a class="btn btn-sm btn-blocks btn-outline-primary mt-2" :download="output.name" :href="outputURL" title="Download the compressed image">Download</a>
	</div>
</div>

 

Pensei em colocar um botão de salvar ali no lugar do Download, porem como que vou enviar os dados da imagem para o arquivo salvar.php?

Share this post


Link to post
Share on other sites
CREATE TABLE `upload` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `img` VARCHAR(200) NOT NULL,
  `data` DATETIME NOT NULL,
  PRIMARY KEY (`id`));

Não sei como tu pega o nome do arquivo e o formato, mas eu fiz um exemplo com upload da W3S:

    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
        $oarquivo = basename( $_FILES["fileToUpload"]["name"]);
        $sql = "INSERT INTO upload VALUES ";
        $sql .= htmlentities ("(null, '$oarquivo', NOW())");
        mysqli_query($strcon,$sql) or die("Impossivel cadastrar no banco de dados a imagem.");
        mysqli_close($strcon);
        echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";

    } else {
        echo "Sorry, there was an error uploading your file.";
    }

Share this post


Link to post
Share on other sites
19 horas atrás, Megao disse:

Não sei como tu pega o nome do arquivo e o formato, mas eu fiz um exemplo com upload da W3S:

Ai é que esta o problema, não sei como fazer pra pegar a imagem... ela aparece dentro desa div:

 

<div class="mt-2">
		<a class="btn btn-sm btn-blocks btn-outline-primary mt-2" :download="output.name" :href="outputURL" title="Download the compressed image">Download</a>
	</div>

 

Share this post


Link to post
Share on other sites

Mas o que preciso é usar o (https://xkeshi.github.io/image-compressor/) para depois passar pro PHP.

A imagem aparece nessa div:

<div class="mt-2">
		<a class="btn btn-sm btn-blocks btn-outline-primary mt-2" :download="output.name" :href="outputURL" title="Download the compressed image">Download</a>
	</div>

Talvez nesse condigo:

:download="output.name" :href="outputURL"

alterasse para algo como:

:upload="output.name" :href="salvar.php"

mas como que vou enviar os parâmetros para pegar la no salvar.php? 

Share this post


Link to post
Share on other sites

Ah, entendi! Pensei que este compressor fosse teu.

Como tu recebe a imagem do compressor para exibir no cliente?

É gerado algum link para a imagem ou ele simplesmente baixa?

 

Eu sinceramente estou um pouco confuso, mas acredito que eu consigo fazer, quando eu entender 100% como tu pega a imagem do compressor.

 

~

 

Dependendo da forma que tu baixa a imagem, poderia fazer assim:

 

Apenas um exemplo:

 

Banco de dados:

CREATE TABLE `upload` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `img` VARCHAR(200) NOT NULL,
  `data` DATETIME NOT NULL,
  PRIMARY KEY (`id`));

~~~~~~~~~~~~~~~~~~~~

Conexão com o banco de dados:

<?php

$Servidor = 'localhost';
$nomeBanco = 'leupload';
$Usuario = 'root';
$Senha = '';
$strcon = mysqli_connect($Servidor, $Usuario, $Senha, $nomeBanco); 

?>

~~~~~~~~~~~~~~~~~~~~

index.php

<?php

include ('conexao.php');

// ignore o rand
$nomeimagem = md5(rand(1,20));  // fiz isso apenas pra gerar um nome aleatório para a imagem
//

$imagemcomprimida = "blob:https://xkeshi.github.io/$nomeimagem";  # o nome aleatório que eu gerei

$imgbd = explode("/", $imagemcomprimida);  # filtra o url através da barra pra pegar apenas o nome


	echo 'blob:https://xkeshi.github.io/'.$imgbd[3];  # resultado: nome da imagem upada
	echo '<br><button>Aqui o teu botão de download e bla bla bla</button>'; 
	$oarquivo = $imgbd[3];

	// inserir no banco de dados //

	$sql = "INSERT INTO upload VALUES ";
	$sql .= htmlentities ("(null, '$oarquivo', NOW())");
	mysqli_query($strcon,$sql) or die("Impossivel cadastrar no banco de dados a imagem.");
	mysqli_close($strcon);
	// aviso do banco de dados
	echo '<hr>O banco de dados informa:';
	echo "<p><font color='red'>A imagem comprimida <font color='black'>$oarquivo</font> foi enviada para o banco de dados</font></p>";
	exit;
	?>

~~~~~~~~~~~~

 

Resultado final:

ExImgC.png.03e55bc5f04df7273a920207a8207ae1.png

Share this post


Link to post
Share on other sites

Ola amigo, obrigado por tentar me ajudar. 

 

Citar

Como tu recebe a imagem do compressor para exibir no cliente?

 

Recebo através do javascript que manda exibir nessa div:

<div class="mt-2">

 

Citar

É gerado algum link para a imagem ou ele simplesmente baixa?

 

Não, apenas exibe na div e tem um botão que ao clicar que faz o download da imagem (aqui, não foi upado ainda... faz o download apenas da memória)... 

 

nessa linha:

Citar

echo 'blob:https://xkeshi.github.io/'.$imgbd[3];  # resultado: nome da imagem upada

Aqui você já upou a imagem... 

 

e é isso que nao estou conseguindo upar uma imagem que o javascript exibe numa div.

 

Obs:

 

Queria usar esse "image-compressor", porque tem a vantagem de carregar e redimensionar a imagem rapidamente consequentemente salvando mais rápido no banco no meu caso usando o mysql.

Share this post


Link to post
Share on other sites

Bom dia!

Talvez seja possível com ftp salvando a imagem em alguma pasta e no banco de dados o nome e o formato dela.

Não tenho muita experiência com JavaScript e as informações que você postou não foram esclarecedoras pra mim.

Como você exibe a imagem com JavaScript, talvez seja melhor postar na categoria de JavaScript ou esperar alguém experiente nisso responder o tópico.

Boa sorte

Share this post


Link to post
Share on other sites

  • Similar Content

    • By violin101
      Caros amigos, saudações.

      Por favor, peço desculpa em recorrer a ajuda dos amigos referente uma dúvida.

      Tenho um Sistema que estou escrevendo em PHP + Codeigniter e a minha dúvida em Codeigniter é:
      Obs.: as tabela são em MySql

      => como faço para IMPORTAR o dado de uma Tabela para outra, as tabela são:
      ___________________Tabela de Pedido     =========== para ==========>    Tabela de Entrada de Lançamentos
      itens: codigoProduto | quantidade | valorUnitario  === importar===> itens: codigoProduto | quantidade | valorUnitario
       
      Estou tentando de várias formas, mas não estou conseguindo.

      Por favor, alguém pode me dar uma ajuda, explicação ou orientação.

      Grato,
       
      Cesar
       
    • By violin101
      Caros amigos, saudações.
       
      Estou com uma pequena dúvida que não estou conseguindo resolver.

      Tenho 2 Tabelas, a 1ª.principal e a 2ª.secundária.

      Exemplo:
      Dados da 1ª Tabela - Peças e Equipamentos
      Dados da 2ª Tabela - Veículos.

      Seria isso:
      0010 - Pneu Aro 20
        [x] 001 - Corsa
        [_] 002 - Fusca
        [_] 003 - Palio
      Comentário:________________
       
      0100 - Óleo para Motor
         [x] 002 - Fusca
         [_] 003 - Palio
      Comentário:________________
       
      1030 - Lubrificante
         [_] 001 - Corsa
         [x] 003 - Palio
      Comentário:________________
       
      O meu problema está sendo quando preciso SALVAR/ATERAR o campo COMENTÁRIO, pois trata-se da 1ª.tabela.
       
      Gostaria salvar o COMENTÁRIO sem interferir nas seleção da 2ª. tabela.
       
      Grato,
       
      Cesar
       
       
       
       
       
    • By Carcleo
      Estou começando no Laravel 11 e me deparei com um problema de belongsTo
       
      public function listOfClass(Request $request, StudentDisciplineClassroom $sdc) : ?string {         $all = $sdc::select('student')->with('studentRelation')->where('classroom',$request->classroom)->distinct('student')->get();     dd($all->toArray());     $students = [];     foreach ($all as $student) {             $students[] =$student;     }       return response()->json($students)->getContent();     } isso

      Em studentRelation temos na tabela StudentDisciplineClassroom com os campos

      id(chave primaria)
      ra (chave estrangera que referencia o campo academic_registration na tabela de students)

      e a tabela student tem os campos

      id (chave primária)
      academic_registration (que vai ser refeenciada na tabela StudentDisciplineClassroom

      Mas na hora de fazer
      $sdc::select('student')->with('studentRelation')->where('classroom',$request->classroom)->distinct('student')->get();
      O studentRelation retorna nulo

      Onde eu posso estar errando?
    • By joao b silva
      Tenho uma pequena aplicação em php que gera arquivos pdf com a MPDF e envia email com a PHPMAILER. De repente a app parou de enviar os emails  e apresenta a seguinte mensagem de erro:
       
      Error PHPMailer: SMTP Error: Could not authenticate.
       
      Faço uso de um hotmail para a configuração do PHPMAILER.
    • By violin101
      Caros amigos, saudações.
       
      Gostaria de tirar uma dúvida com os amigos.
       
      Quando programava em DOS. utilizava algumas teclas de atalho para: SALVAR / EDITAR / EXCLUIR / IMPRIMIR.
      Por exemplo:
      Salvar ----> ALT+S
      Editar ----> ALT+E
      Excluir --> ALT+X
      Imprimir -> ALT+I

      no PHP tem como colocar esses ATALHOS nos button, para o usuário trabalhar com esses atalhos e como seria ?

      grato,
       
      Cesar
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.