Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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>
[P](https://xkeshi.github.io/image-compressor/)ensei 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?>
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>https://www.w3schools.com/php/php_file_upload.asp
Se mesmo assim tiver dúvidas, eu te mostro como fazer.
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?
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:**
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.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
Tenho um tópico no meu GitHub que trato upload de imagens, de uma olhada baixa o projeto e testa, ela funciona certinho.
Pessoal, ainda não consegui resolver o problema. Obrigado por tentarem me ajudar. Vou abrir um tópico na categoria JavaScript.