Ir para conteúdo

Arquivado

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

flavialieggio

UPLOAD - orientação

Recommended Posts

Olá Pessoal!!! :huh:

 

Estou com grande dificuldade de entender como fazer upload de arquivos!! No site que trabalho , temos um form de cadastro de leis. Neste form tem como ultimo campo, um campo "file" onde o usuario escolhe o arquivo que tem que ser obrigatoriamente pdf! Quero gravar esse arquivo no banco de dados. Como muitos fazem para inserir imagem e tal. Porem. minha dúvida é:

 

No tutorial que li diz que para o upload são criados 4 variáveis:

 

$meu_arquivo = $_FILES['meu_arquivo']['tmp_name']

$meu_arquivo_name = $_FILES['meu_arquivo']['name']

$meu_arquivo_size = $_FILES['meu_arquivo']['size']

$meu_arquivo_type = $_FILES['meu_arquivo']['type'].

 

Na configuração do meu php.ini o registro de variaveis globais está off.

- É necessário declarar todas essas variáveis?

Se sim:

- Logo qual dessas variáveis que uso para passar o valor do campo do formulario para a página de inserção de dados?

 

 

Vou postar primeiramente o form e depois a página onde recebo os dados, até mesmo para voces olharem e verificar se não há erros, por favor:

 

cadastro.php

<form action="cad_lei_confirma.php" method="post" name="form1" enctype=multipart/form-data><div align="left"><table width="100%"  border="0" cellspacing="0" cellpadding="0"><tr bgcolor="#F4F4F7"><td width="32%" height="18"><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#000000">Identificador da Lei:</font> ......(os outros campos do formulário)<tr bgcolor="#F4F4F7"><td height="20"><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#000000">Anexar arquivo em PDF:</font></td><td><input type="file" name="arquivo" class="text-areas_incluir_prof" size="20" ></td></tr><tr><td height="20"> </td><td> </td></tr><tr><td height="20" colspan="2"><div align="center"><input name="Ok42" type="submit" class="button_pequeno" value="Inserir!"><input name="Ok4" type="reset" class="button_pequeno" value="Limpar informações!"></div></td></tr></table></div></form>
confirma.php

PHP

[*]

[*]<html>

[*]<body>

[*]<?php

[*]//variáveis do cadastro:

[*]$nome_lei = $_POST["nome_lei"];

[*]$dt_publicacao = $_POST["dt_publicacao"];

[*]$vigencia = $_POST["vigencia"];

[*]$resumo = $_POST["resumo"];

[*]$tipo_lei = $_POST["tipo_lei"];

[*]$orgao = $_POST["orgao"];

[*]$ambito = $_POST["ambito"];

[*]$acao = $_POST["acao"];

[*]$especies = $_POST["especies"];

[*]$url = $_POST["url"];

[*]$arquivo = $_FILE['arquivo'];

[*]

[*]//procedure de inserção da lei:

[*]$conn = OCILogon("usuario","senha","db");

[*]$curs = OCINewCursor($conn);

[*]$stmt = OCIParse($conn,"begin sipec.pecasp017_inclui_legislacao( :P _nu_legislacao,null,'$tipo_lei','$orgao','$ambito','$nome_lei',to_date('$dt_publicacao','dd/mm/yyyy'),'$url','$resumo','$arquivo','$acao'); end;");

[*]OCIBindByName($stmt," :P _nu_legislacao",$nu_legislacao,5);

[*]OCIExecute($stmt,OCI_COMMIT_ON_SUCCESS);

[*]OCIFreeStatement($stmt);

[*]OCILogoff($conn);

[*]echo "<div align='center'><font face='Verdana, Arial, Helvetica, sans-serif' size='1' color='#000000'>A inserção da Legislação <b>$nome_lei</b> foi realizada com sucesso! Caso queira realizar novo cadastro <a href='cadastro.php' class='menu_cima'>clique aqui!</a></font></div>";

[*]?>

[*]</html>

[*]</body>

[*]

 

Como vocês irão perceber, to trabalhando com procedures. To tendo muita dificuldade em como trabalhar a inserção desse arquivo no banco. Se voces puderem me orientar, agradeço muito pessoal!!!

 

Obrigada pela atenção!

Flávia

Compartilhar este post


Link para o post
Compartilhar em outros sites

você não tá ligado como funciona quando você passa um campo como file, vou tentar te esclarecer...quando você coloca um campo type='file', o nome desse campo é passado como $_FILES['nome']no teu caso é type='file' name='arquivo', então quando você enviar, vai ser $_FILES['arquivo']Isso é o teu array com todos os dados do arquivo que você fez upload!Dae você tem as chaves do array, como você mesmo colocou:$_FILES['arquivo']['tmp_name'] $_FILES['arquivo']['name'] $_FILES['arquivo']['size'] $_FILES['arquivo']['type']Pronto!Já falei em outros posts e vou repetir, $_POST, $_GET, $_FILES, $_SESSION, ...Isso tudo são ARRAYS, então é só tratar como array, todos pensam que é algo de outro mundo!Por isso não entendo porque todos fazem isso: $meu_arquivo_name = $_FILES['meu_arquivo']['name']É mesma coisa que fazer:$teste = "nome do cara";$nome = $teste;echo $nome;Acho que isso te esclarece algumas coisas, qualquer coisa da um grito ae!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Fitinge,

 

e quase isso que voce realmente ta falando! Eu vejo em vários exemplos as pessoas montarem um sistema de upload de imagens declarando da forma que voce citou:

 

"$meu_arquivo_name = $_FILES['meu_arquivo']['name']"......

 

A minha dúvida é exatamente em como declarar essas variáveis (se é realmente igual da forma acima), se tem que declara-las e qual delas então eu declaro la no campo de inserção dos dados da procedure!?!?! http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif

 

To meio confusa..... :wacko:

 

Outra dúvida:

Eu passando o valor do campo do form para a página onde grava os dados da forma que passei:

 

$arquivo = $_FILE["arquivo"];

 

resolve para gravar o arquivo no banco de dados???

 

Abraço e muito obrigada pela atenção!

Flávia

Compartilhar este post


Link para o post
Compartilhar em outros sites

já está declarando quando você envia o arquivo!

 

o nome do aquivo é $_FILES['arquivo']['name']

 

agora você quer gravar os dados do arquivo no banco ou quer gravar o arquivo em algum lugar???

 

Por exemplo, para gravar o arquivo em algum lugar, você pode usar assim:

 

PHP

[*]

[*]move_uploaded_file($_FILES['arquivo']['tmp_name'], "/diretorio/que/vai/ficar/o/arquivo/" . $_FILES['arquivo']['name'])

[*]

 

se for para ler o arquivo dae você da um file() nele e le linha por linha e vai inserindo no banco...

 

Espero que tenha ajudado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

é importante verificar o valor do vetor:$_FILES['arquivo']['error']os valores são de 0 ao 4consulte o manual para maiores detalhes

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal!!! Bom Dia!!!

 

Fitinge, eu quero gravar o arquivo no banco de dados. Não é só o nome do arquivo, mas sim o arquivo inteiro. O campo para salvar este arquivo esta na mesma tabela onde salvo as leis. Veja se está certo meu raciocinio:

 

Ná página cadastro.php, que coloquei no começo do tópico, eu devo então, para salvar este arquivo no banco de dados, declarar as variáveis da seguinte forma:

 

PHP

[*]

[*]$_FILES['arquivo']['tmp_name']

[*]$_FILES['arquivo']['name']

[*]$_FILES['arquivo']['size'];

[*]$_FILES['arquivo']['type'];

[*]

[*]//e na procedure devo declarar a variavel $_FILES['arquivo']['tmp_name'] para

[*]//poder salvar o arquivo no banco de dados?

[*]

 

http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif

Obrigada pela atenção.

Flávia

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.