Ir para conteúdo
Fórum Script Brasil
  • 0

Erro ao enviar Banner


marcosfj1

Pergunta

Seguinte galera, aqui no site quando se tem um banner novo, o rapaz que desenvolve tem que abri o FTP e colocar ele na pasta para que possa aparecer no site. Mas não quero que seja mais assim pois não é legal ficar abrindo o FTP para isso, então decidi na area administrativa criar um sistema de envio automatico do banner, e fiz da seguinte forma:

Primeiro o formulario de envio, bem simples:

<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1" >
  <table width="100%">
    <tr>
      <td colspan="2" align="left"><strong><u>Enviar Banner</u></strong></td>
    </tr>
    <tr>
      <td colspan="2" align="left">&nbsp;</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td></td>
    </tr>
    <tr>
      <td valign="top" width="30%" align="right"><strong>Banner</strong></td>
      <td align="left"><input name="banner1" id="banner1" type="file" /></td>
    </tr>   
    <tr>
      <td>&nbsp;</td>
      <td></td>
    </tr>
    <tr>
      <td></td>
      <td align="left">
        <input name="enviar" type="submit" value="Salvar Banner" />
        <input name="formulario" type="hidden" value="banner1" />
      </td>
    </tr>
  </table>
</form>
Depois o lugar onde eu trato o banner para ser enviado:
if ($_FILES['banner1']['name']) {
                
                //
                for ($i=0; $i<sizeof($_FILES['banner1']['name']); $i++) {
                    
                    //
                    preg_match("/\.(gif|bmp|swf|png|jpg|jpeg){1}$/i", strtolower($_FILES['banner1']['name'][$i]), $ext);    
                    
                    //
                    if ($ext[0] == '.swf') {
                        
                        
                        $banner_nome = $_POST['banner1'].md5(uniqid(rand(), true));
                        $upload = FTP($_FILES['banner1']['tmp_name'][$i], 'banner', $banner_nome, false);
                        
                        //
                        if (!$upload) 
                            $alert = 'Banner não foi enviado!';
                        else {
                            
                            
                            //
                            $sql = "INSERT INTO banner (banner_nome, dt_hr)
                                    VALUES ('$banner_nome', now())";
                            mysql_query($sql) or die(mysql_error());
                            $alert = 'Banner Enviado com Sucesso';
                        }
                    
                    }
                    
                }

Bom primeiro eu segui este codigo do sistema de envio de imagens que já existe na area administrativa, e esta funcionando.

Reparem que no codigo tem a funcao FTP que é para poder enviar arquivos em pastas criadas no FTP com 755, e que logo apos eu insiro na pasta BANNER.

Depois eu tento inserir as informaçoes em uma tabela no banco de dados

Bom resultado não acontece nada, ao enviar o sistema demonstra carregar mas não acontece nada, nem vai para a pasta destinada, nem é inserido na tabela. alguém pode me ajudar?

Onde esta o meu erro?

Obrigado

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

bom, primeiro você precisa abrir a conexão e depois fazer o login, para só então, fazer o ftp do arquivo (veja: http://br3.php.net/manual/pt_BR/ref.ftp.php). O mais fácil seria usar a função move_uploaded_file() (veja: http://br3.php.net/manual/pt_BR/features.f...ost-method.php).

Ah, o arquivo "$_FILES['banner1']['tmp_name'][$i]" não existe. No seu caso o arquivo válido é o "$_FILES['banner1']['tmp_name']" sem "[$i]".

Editado por svjets
Link para o comentário
Compartilhar em outros sites

  • 0
Ah, o arquivo "$_FILES['banner1']['tmp_name'][$i]" não existe. No seu caso o arquivo válido é o "$_FILES['banner1']['tmp_name']" sem "[$i]".

Valeu pela dica cara

No caso como eu disse eu uso uma funcao FTP que já faz todo o processo de abrir a conexao, então só de ter chamado ela já realizo a conexao e dou a permissao para escrever em pastas fechadas do ftp

Mas isso do [$i] não tinha reparado, vou tentar, mas acho q não va dar muito resultado hehe

valeu

Link para o comentário
Compartilhar em outros sites

  • 0

Cara valeu era isso mesmo de ter colocado o [$i]

Consegui enviar o banner para o banco e para a pasta do FTP

Mas agora preciso de uma outra ajuda.

$banner_nome = $_POST['banner'].(rand()).$ext[0];
$upload = FTP($_FILES['banner']['tmp_name'], 'banner', $banner_nome, false);

então o nome do arquivo não esta vindo por POST, deveria vir o nome do arquivo que enviei

Sabe me ajudar?

Valeu

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...