Jump to content

Mysql + Blob fields....


ruimcosta
 Share

Recommended Posts

Biba,

Pegando numa ideia e sem querer discutir se será o melhor sistema ou não, criei uma tabela para repositório de ficheiros de vários tipos:

CREATE TABLE IF NOT EXISTS `armz_files` (
  `nid` int(100) NOT NULL AUTO_INCREMENT,
  `f_name` varchar(200) NOT NULL,
  `f_size` varchar(50) NOT NULL,
  `f_type` varchar(300) NOT NULL,
  `f_content` blob NOT NULL,
  `dreg` datetime NOT NULL,
  PRIMARY KEY (`nid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Armazem de Ficheiros para distribuir';

Aqui já coloquei alguns ficheiro utilizando este código:

    $fileName = $_FILES['txtfile']['name'];
    $tmpName  = $_FILES['txtfile']['tmp_name'];
    $fileSize = $_FILES['txtfile']['size'];
    $fileType = $_FILES['txtfile']['type'];
    
    $fp      = fopen($tmpName, 'r');
    $content = fread($fp, filesize($tmpName));
    $content = addslashes($content);
    fclose($fp);

Apos obter estes dados guardei na tabela.

Agora preciso de os extrair da base de dados e em principio, com este bloco de código, conseguiria:

$nid = $_GET['id'];

$sql = "select f_name, f_content, f_size, f_type from armz_files where nid = '$nid'";
$rs  = mysql_query($sql);

$data = @mysql_result($rs, 0, "f_content");
$name = @mysql_result($rs, 0, "f_name");
$size = @mysql_result($rs, 0, "f_size");
$type = @mysql_result($rs, 0, "f_type");


header("Content-type: $type");
header("Content-length: $size");
header("Content-Disposition: attachment; filename=$name");
echo $data;

Ora disto obtenhoum ficheiro sem extensão e mesmo atribuindo-lhe a extensão "á la pate", não consigo abrir o ficheiro pois da como corrompido. Isto neste caso especifico de um documento de word...

Alguma dica?

Obrigado

Abraços e beijinhos,Rui Costa

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.