Salvar arquivo do Blob

(demarchi) #1

Olá, boa tarde!

Estou com uma dúvida, que talvez seja simples de se resolver, mas ainda não achei a solução.
Na verdade, gostaria de saber se há como fazer isso no Scriptcase.

Na minha tabela, tenho um campo, do tipo blob (mediumblob), nele eu tenho uns arquivos XML.
É bem fácil fazer o Scriptcase reconhecer o arquivo e baixar, sem problemas.

Para dar o nome do arquivo, eu utilizo um campo chamado “CHAVE”, nesse campo tenho a chave da Nota Fiscal eletrônica.

Eu quero concatenar ao nome da chave uma expressão e a extensão.
A expressão seria -nfe.xml.
O nome do arquivo seria:
35100101112320000104550020000000010000000019-nfe.xml

Tem como fazer isso?

Eu gostaria de saber também se há uma maneira de fazer um loop na tabela e baixar de uma vez só, todos os arquivos do blob.

Obrigado a todos!

(demarchi) #2

Fuçando nos exemplos, eu encontrei como concatena… e como coloco a extensão.

Só criar no envento OnRecord o comando:
{chave} = {chave}."-nfe".".xml";

Onde {chave} é meu campo de nome do arquivo do blob.

Agora só falta salvar ou exportar todos os arquivos do blob.

Obrigado!

(mykola) #3

A funcao abaixo explorar arquivos em um diretorio e renomeia tambem o nome do arquivo:

<?php /** * @author Mykola * @version 1.0 * @access public * * TODO: tudo **/ $dirtrabalho = "../../"; $dirtrabalho .= $entradasDir; $processadosDir = $processaosDir; $inName = listDir($dirtrabalho,'txt'); echo "
| Procurando Arquivos no Diretorio: " . $dirtrabalho . " |
" ; echo "
| Quantidade de Arquivos Encontrados: " . count($inName) . " |
" ; // se foi retornado exite algum arquivo txt if (count($inName) < 1){ exit(); } else { for ($x=0; $x <= count($inName) -1; $x++){ if ( $inName <> "" ) { echo "
Abrindo Arquivo {$inName[$x]}
"; // Cria Xml com Mesmo Nome e Destino $filename = "$dirtrabalho{$inName[$x]} "; $createname = "{$inName[$x]}.xml"; $createname = str_replace('.txt','',$createname); $vai_xml = fopen($createname,"w+"); // Prepara variaveis para aceitar dados $Dados = str_replace($dirtrabalho,'',$filename); echo "
| Processando " . $Dados . " |
" ; // Após o uso Move o Arquivo para outro Diretorio TXT rename("$dirtrabalho{$inName[$x]}", "$processadosDir{$inName[$x]}"); } else { echo "The if statement evaluated to false"; } //IF } //Loop } //IF echo "
|Voltando| \n"; ?>