Patricio 0 Denunciar post Postado Março 17, 2005 A Situação é a seguinte. Tenho um projeto que quer cadastrar documentos armazenando o arquivo, do tipo pdf e doc, num campo blob do banco oracle 9i. Mas além disso a proposta tem a intenção de recuperar esses documentos armazenados no banco e que estão em binário e apresentar para o usuario. Esta se usando php e oracle 9i. Primeiro é feito um upload do arquivo para uma pasta no diretório c:temp Abaixo mostro o cabeçalho usado.... ><html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii\n";><meta name="GENERATOR" content="Quanta Plus"></head><form name='frm_files' method="POST" enctype="multipart/form-data" action="DocumentoInclui_db.php" ><center><table border="0"><TABLE BORDER=0 CELLSPACING=2 CELLPADDING=5 BGCOLOR=="#FFF0FF,"><TR><TH COLSPAN=2> Cadastros de Documento </TH></TR></table><br><?O código abaixo mostra o momento que o arquivo é passado e armazenado no C:/temp. onde $doc_name é o documento em questão. //RECEBE OS DADOS DO CAMPO $_FILES//NOME TEMPORÁRIO NO SERVIDOR$doc_temp = $HTTP_POST_FILES["Anexar"]["tmp_name"];//NOME DO ARQUIVO NA MÁQUINA DO USUÁRIO$doc_name = $HTTP_POST_FILES["Anexar"]["name"];//TAMANHO DO ARQUIVO$doc_size = $HTTP_POST_FILES["Anexar"]["size"];//TIPO MIME DO ARQUIVO$doc_type = $HTTP_POST_FILES["Anexar"]["type"];//ENVIA O ARQUIVO PARA A PASTAchmod('C:\temp\ ', 0777);@move_uploaded_file ($doc_temp, "C:\\temp\ $doc_name"); Com o arquivo armazenado no diretório o procedimento criado no sql é usado para armazenar na tabela. $clob = OCINewDescriptor($db, OCI_D_LOB); $stmt = OCIParse($db, "begin insert_doc_blob($cod_doc_arm,$cod_doc_arm,'TEMP',' $doc_name');end;"); OCIExecute($stmt, OCI_DEFAULT); abaixo o procedimento já mostrado anteriormente : create or replace procedure insert_arq_lob ( Diretorio varchar2, arquivo varchar2) is V_ARQUIVO bfile; V_CAMPO_LOB blob; V_TAM_ARQUIVO integer; begin V_ARQUIVO:=bfilename(Diretorio,Arquivo); dbms_lob.fileopen ( V_ARQUIVO, dbms_lob.file_readonly ); V_TAM_ARQUIVO:=dbms_lob.getlength(V_ARQUIVO); insert into docs values (arquivo,empty_blob) returning doc into V_CAMPO_LOB; dbms_lob.loadfromfile(V_CAMPO_LOB,V_ARQUIVO,V_TAM_ARQUIVO); dbms_lob.fileclose(V_ARQUIVO); commit; end; Agora o problema está na hora de retornar o arquivo do banco, como sei o sql não retorna o arquivo binário e não sei como tratar esso no php......... então aí esta o problema. Compartilhar este post Link para o post Compartilhar em outros sites
SSBCES 0 Denunciar post Postado Agosto 5, 2005 Estou precisando realizar a mesma coisa, porém em ASP, alguém poderia me ajudar nisso ? Compartilhar este post Link para o post Compartilhar em outros sites