[PHP]Download file da base de dados (SQL)

Majin Vegeta

Power Member
Pessoal, tenho uma duvida.

eu utilizo este codigo para mostar imagens no meu site em php:

Código:
<?php
$ligax=mysqli_connect('localhost','root');
if($ligax) {
    mysqli_select_db($ligax,'nomedabasededados');
    //$l=$_GET['cod_produto'];
    if(!mysqli_error($ligax)) {
        $query ="select image_name, image_type, image_size,image_data from produto where cod_produto=".$_GET["pp"]."";
        $result=mysqli_query($ligax,$query);
        $row=mysqli_fetch_array($result);
        $type=$row["image_type"];
        $name=$row["image_name"];
        $size=$row["image_size"];
        // get the file data
        $data=base64_decode($row["image_data"]);

        // output the file
        header("Content-type:$type");
        header("Content-length:$size");
        header("Content-Disposition: inline; filename=$name");
        header("Content-Description: PHP Generated Data");
        echo $data;
    }
}
?>

no entanto, o codigo que tenho que faz o upload das imagens, tambem faz upload de ficheiros.
eu consigo fazer o upload de ficheiros para a base de dados mas depois nao consigo fazer o downoad (faz o download mas e de um ficheiro que nem tem extensao nem nada e que ocupa meia duzia de kbytes) dele. eu penso que a razao porque ele nao me traz o ficheiro correctamente seja por causa dos headers que estao ai.

podem me dar uma vista de olhos nesse codigo e dizerem-me o que esta mal ou o que e que falta?

cumps
 
Última edição pelo moderador:
Sei que não estou a responder ao tua questão,

mas não aconselho-te guardar imagens ou ficheiros na base de dados, a solução mais adequada é teres um campo na tabela a indicar o nome do ficheiro/imagens (não pode ter valores repetidos), sendo estes ficheiros previamente carregados para o servidor, numa directoria predefinida por ti, assim poupas imenso espaço na base de dados, consequentemente a "querys" ficam mais rápidas.

Espero ter sido útil. :)
 
e que diferença faz isso? podes fazer na mesma o que o hiddenbyte disse, é mais aconselhável e dá menos trabalho

tudo bem mas mesmo assim eu queria fazer a guardar na base de dados e alem disso eu consigo fazer o upload. nao consigo e fazer o download correctamente da base de dados.

cumps
 
e que diferença faz isso? podes fazer na mesma o que o hiddenbyte disse, é mais aconselhável e dá menos trabalho

entao e como e que eu posso fazer isso? podes me explicar?

e que acho que ninguem sabe fazer da maneira que eu pedi senao ja tinham respondido a este topico e sendo assim nao vou ter outra alternativa senao fazer como tu e o hiddenbyte me explicaram.

voces podem me ajudar a fazer isso?

cumps
 
Tens boa solução, instala o WampServer 2.0 para fazers um localhost e ai já ficas com um servidor local, e depois usas o método que o hiddenbyte referiu
 
Back
Topo