Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

flavialieggio

Inserir arquivo rar, zip, xls

Recommended Posts

Ola pessoas, boa noite!

 

Venho por meio deste, pedir uma grande ajuda de voces.

 

Alguem sabe me dizer se e possivel, e como pode ser feito, a insercao de arquivos dos tipos XLS, RAR, ZIP, no MySQL, em um campo da tabela do tipo BLOB?

 

A estrutura da minha tabela e a seguinte:

CREATE TABLE `tab_arquivos` (
 `seq_arquivo` int(11) NOT NULL auto_increment,
 `nome` varchar(50) NOT NULL,
 `arquivo` longblob NOT NULL,
 `tipo_arquivo` varchar(50) NOT NULL,
)

Meu codigo de insercao e este:

$arquivo = $_FILES['arquivo_projeto']['tmp_name'];
$tamanho = $_FILES['arquivo_projeto']['size'];
$tipo = $_FILES['arquivo_projeto']['type'];
$nome = $_FILES['arquivo_projeto']['name'];

if ( $arquivo != "none" )
{
$fp = fopen($arquivo, "rb");
$conteudo = fread($fp, $tamanho);
$conteudo = addslashes($conteudo);
fclose($fp);

$comandoSQL = "INSERT INTO tab_arquivos (nome, arquivo, tipo_arquivo)
VALUES ('".$nome."','".$conteudo."','".$tipo."')";

$arrRetornoDAO = Conexao::executarQuery($comandoSQL);

if ($arrRetornoDAO["tipo"] == false)
{
View::setMensagem($arrRetornoDAO["msg"]);
}

if(mysql_affected_rows() > 0)
{ echo ("<script>alert('O arquivo foi gravado na base de dados.');</script>"); }
else
{ echo ("<script>alert('Não foi possível gravar o arquivo na base de dados.');</script>");}
}
else
{ echo ("<script>alert('Não foi possível carregar o arquivo para o servidor.');</script>");}

 

Consigo inserir imagens, documentos do Word.. menos os informados acima.

 

Grande abraco

 

Flavia

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Flávia!

Pelo que testei no seu script, ele da um erro. E não consegui achá-lo. Mas venho com um script que desenvolvi para ver se supre as suas necessidades.

Enfim, ele faz o que tu disse, ele adiciona somente arquivos RAR, ZIP e XLS ao banco de dados. Eu fiz uma condição que restringisse isso.

 

<?php
// Os mesmos Dados do seu Projeto.
$arquivo = $_FILES['arquivo_projeto']['tmp_name'];
$tipo = $_FILES['arquivo_projeto']['type'];
$nome = $_FILES['arquivo_projeto']['name'];
$tamanho = $_FILES['arquivo_projeto']['size'];
// Condição se verifica se o usuário colocou o arquivo para ser enviado.
if($arquivo){
// Condição que verifica o tipo de dado que vai ser enviado, no seu caso, só vai poder ZIP, XLS e RAR.
if($tipo == "application/zip"||$tipo == "application/octet-stream"||$tipo == "application/x-rar-compressed"){
	// Faz a conexão com o Banco de Dados.
	$con = mysql_connect('localhost','root','');
	// Seleciona o Banco de dados, que no caso foi um que eu criei com o nome teste.
	$db = mysql_select_db('teste');
	// Mesmos dados da sua Tabela, que foi enviada até mim.
	$sql = "INSERT INTO tab_arquivos (nome, arquivo, tipo_arquivo) VALUES('$nome','$arquivo','$tipo')";
	// Executa a função MySQL que adiciona os dados no Banco de Dados.
	$query = mysql_query($sql);
		// Verfiica se os dados foram adicionados.
		if($query){
			echo "O arquivo foi enviado corretamente ao banco de dados.";


} else {echo "Erro ao adicionar no banco de dados.";}

} else {echo "Selecione apenas o arquivo com formatos ZIP, XLS ou RAR.";}



} else {echo "Campo vazio.";}


?>

 

Espero que este supra todas as suas necessidades, desde já agradeço.

Abraço :* e beijos.

 

(.'-'.)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Dii, boa tarde!

 

Desde ja agradeco pela ajuda e orientacao! :)

 

Fiz o teste aqui, porem nao estou conseguindo carregar a variavel $tipo do arquivo. Quando tento inserir esses arquivos RAR, ZIP ou XLS, o sistema nao apresenta ou nao carrega a variavel. Logo da um erro... O que poderia ser isso?

 

Segue o resultado depois de "printar" as variaveis do arquivo:

Arquivo -

Tamanho - 0

Tipo -

Nome - Genial.xls

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Boa Tarde.

Eu estou usando o EasyPHP, para rodar o servidor Apache, aqui funcionou corretamente.

Como o @Henrique =]~ disse, tente dar um print_r.

Caso não funcione, acredito eu que seja um erro na biblioteca, mas uma pergunta.

É só com o XLS que acontece ou todos?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Dii e Henrique, boa tarde!

 

Ja fiz o teste com o print_r($_FILES['arquivo_projeto']), porem o resultado e o mesmo.. nao consigo ter a descricao do tipo e arquivo.

Isso acontece com os arquivos tipo RAR, ZIP, XLS, PPS,.. os unicos que deram certo ate agora foi: doc, jpeg, png, gif, txt, etc.

 

Alguma dica rapazes, pois ja estou sem alternativas... nao sei mais o que fazer...

 

Abracos,

Flavia

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que programa você usa para rodar o servidor Apache? E ele chega adicionar no banco de dados?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entao ele chega a armazenar os arquivos, nos tipos que te falei.. mas quando tento armazenar XLS, rar, zip, pps, etc., nao vai...

 

Eu uso um programa para desenvolvimento NetBeans.... nao trabalho com nenhuma framework diretamente...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah. É que eu desenvolvo meus Scripts com o Bloco de Notas e uso o Dreamweaver para desenvolver Web Sites.

E o Banco de Dados? Tem que ver se ele aceita os tipos de dados que você quer, porque deve ter algumas limitações.

Caso use algum diferente do MySQL, aconselho tentar o MySQL.

Pelo que eu fiz aqui, usei o EasyPHP para gerar o servidor Apache, fiz o script no Bloco de Notas, as tabelas no MySQL e ele deu tudo certo. Tente usar os mesmos programas que eu para ver se da certo.

 

Beijos :*

 

Eu odeio fórum ._.' Demora muito para resolver as coisas rs.

 

Entre no msn, que por ventura eu te adicionei, acredito que resolveremos esse assunto mais rápido. Beijos denovo :*

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Dii, beleza!

 

Pessoal, se mais alguem do forum puder contribuir! Preciso demais resolver este problema!

 

Abracos

Flavia

 

Boa tarde pessoal

 

e o seguinte: esse script que coloquei pra voces de arquivos, o Dii conseguiu rodar no servidor local dele. Porem ele usa o EasyPHP e eu estou usando o wamp. Alguem sabe porque que no do Dii roda e no meu nao esta funcionando? E algum erro de biblioteca?

 

Quero muito a ajuda de voces...

 

Obrigada!

 

Abraços, Flávia

 

Alguem pode me ajudar?

Alguem saberia o por que do problema?

Compartilhar este post


Link para o post
Compartilhar em outros sites

São necessárias informações sobre o possível erro, talvez permissão, que parece estar ocorrendo.

No WAMP há uma pasta onde são armazenados os logs do servidor Apache, verifique se nos arquivos aparecem algum registro de erro referente a ação executada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.