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

Problemas com FTP


Alexandrekirpa

Pergunta

peguei um sistema de upload na internet , porem não consigo que a transferencia do arquivo para o meu site seja concluida.

aí vai o sistema:

form.html

<html>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input name="arquivo" type="file">
<br>
<input name="enviar" type="submit" value="Enviar!">
</form>
</body>
</html>
upload.php
<?
//Criado por XXXX
//XXXX@hotmail.com
//Latest Revision: 2007-12-23


$servidor = "**********";
$usuario  = "**********";
$senha    = "**********";


$con = ftp_connect($servidor) or die("Erro ao conectar");
$log = ftp_login($con, $usuario, $senha) or die("Erro ao conectar com usuário e senha");


$nome_f = $_FILES['arquivo']['name'];
$nome_t = $_FILES['arquivo']['tmp_name'];
$size_f = $_FILES['arquivo']['size'];
$size_p = 10240000; //10 MB
$info_f = pathinfo($nome_f);
$exte_f = $info_f['extension'];

//Extensões permitidas
$exte_p = array("jpg", "jpeg", "png", "gif", "zip", "rar", "txt", "php", "exe");
$dir    = "arquivos/";

if($size_f <= $size_p) {
    if(in_array($exte_f, $exte_p)) {
        if(ftp_put($con, $dir . $nome_f, $nome_t, FTP_BINARY)) {
            ftp_rename($con, $dir . $nome_f, $dir . substr(md5(time()), 0, 10) . "." . $exte_f);
            echo "Arquivo <b>" . $nome_f . "</b> enviado com sucesso!";
            }else{
            echo "Erro ao enviar o arquivo " . $nome_f . "!";
        }
        }else{
        echo "Extensão inválida!";
    }
    }else{
    echo "Tamanho excedido!<br>Tamanho permitido: <b>" . ceil($size_p / 1024 / 1024) . "MB</b>";
}

ftp_close($con);
?>

-----------------------------------------------------------------------------------------

então aparece o erro:

Warning: ftp_put(): Unable to service PORT commands in /home/www/projetoajuda.awardspace.com/upload.php on line 29

Erro ao enviar o arquivo one.png!

alguém sabe a solução?

agradeço desde já.

-----------------------------------------------------------------------------------------

SE não entenderem, por favor postem.

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

certo, coloquei igual ta no php.net,

<?
//Criado por XXXX
//XXXX@hotmail.com
//Latest Revision: 2007-12-23


$servidor = "*";
$usuario  = "*";
$senha    = "*";


$con = ftp_connect($servidor) or die("Erro ao conectar");
$log = ftp_login($con, $usuario, $senha) or die("Erro ao conectar com usuário e senha");

// turn passive mode on
ftp_pasv($con, true);

$nome_f = $_FILES['arquivo']['name'];
$nome_t = $_FILES['arquivo']['tmp_name'];
$size_f = $_FILES['arquivo']['size'];
$size_p = 10240000; //10 MB
$info_f = pathinfo($nome_f);
$exte_f = $info_f['extension'];

//Extensões permitidas
$exte_p = array("jpg", "jpeg", "png", "gif", "zip", "rar", "txt", "php", "exe");
$dir    = "arquivos/";

if($size_f <= $size_p) {
    if(in_array($exte_f, $exte_p)) {
        if(ftp_put($con, $dir . $nome_f, $nome_t, FTP_BINARY)) {
            ftp_rename($con, $dir . $nome_f, $dir . substr(md5(time()), 0, 10) . "." . $exte_f);
            echo "Arquivo <b>" . $nome_f . "</b> enviado com sucesso!";
            }else{
            echo "Erro ao enviar o arquivo " . $nome_f . "!";
        }
        }else{
        echo "Extensão inválida!";
    }
    }else{
    echo "Tamanho excedido!<br>Tamanho permitido: <b>" . ceil($size_p / 1024 / 1024) . "MB</b>";
}

ftp_close($con);
?>

mas ae aparece outro erro:

Warning: ftp_put(): arquivos/help5.gif: No such file or directory in /home/www/projetoajuda.awardspace.com/upload.php on line 31

Erro ao enviar o arquivo help5.gif!

nada semelhante a um arquivo(ficheiro) ou diretório em /home/www/projetoajuda.awardspace.com/upload.php

não entendo o que significa, pode me ajudar?

vlw

Link para o comentário
Compartilhar em outros sites

  • 0

cara valeu mesmo!!!

o subdiretório 'arquivos' tava em outro diretório...

ae eu tive que mudar o caminho.

somente se não for te incomodar, poderia me falar como colocar um link para o arquivo que acaba de ser 'subido' para o host?

achei que poderia ser assim, (mas na hora sai errado [ ver quote] ):

$newname = ftp_rename($con, $dir . $nome_f, $dir . substr(md5(time()), 0, 10) . "." . $exte_f);
e depois
echo "Para visualizar o arquivo, clique no link <a href='http://projetoajuda.awardspace.com/arquivos/" . $newname . "'>" . $newname . "</a>";

assim, quanto dá exito no upload aparece isso:

Arquivo help6.gif enviado com sucesso!

Para visualizar o arquivo, clique no link 1

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

  • 0

Isso não vai funcionar porque $newname tem a função que serve para renomear o arquivo, e não o nome atual do arquivo.

Troque isso:

$newname = ftp_rename($con, $dir . $nome_f, $dir . substr(md5(time()), 0, 10) . "." . $exte_f);
Por isso:
$nome_novo = $dir . substr(md5(time()), 0, 10) . "." . $exte_f;
$newname = ftp_rename($con, $dir . $nome_f, $nome_novo);

Chame a variável $nome_novo no link, ela vai guarda o nome atual do arquivo.

Link para o comentário
Compartilhar em outros sites

  • 0

valeu Eserra...

deu certo em um um site.

mas ai eu coloquei em outro site do mesmo host e ele dá um erro:

Fatal error: Call to undefined function ftp_connect() in /home/www/aliancaestudantil.awardspace.com/upload.php on line 12
o código que eu coloquei neste outro site é idêntico ao anterior, que continua funcionando. não entendi o que aconteceu... será que pode me ajudar? código usado anterior e atualmente:
<?
//Criado por *********
//*********@hotmail.com
//Latest Revision: 2007-12-23


$servidor = "*********";
$usuario  = "*********";
$senha    = "*********";


$con = ftp_connect($servidor) or die("Erro ao conectar");
$log = ftp_login($con, $usuario, $senha) or die("Erro ao conectar com usuário e senha");


// turn passive mode on
ftp_pasv($con, true);

$nome_f = $_FILES['arquivo']['name'];
$nome_t = $_FILES['arquivo']['tmp_name'];
$size_f = $_FILES['arquivo']['size'];
$size_p = 10240000; //10 MB
$info_f = pathinfo($nome_f);
$exte_f = $info_f['extension'];

//Extensões permitidas
$exte_p = array("jpg", "jpeg", "png", "gif", "zip", "rar", "txt", "php", "exe", "html", "htm");
$dir    = "aliancaestudantil.awardspace.com/arquivos/";

if($size_f <= $size_p) {
    if(in_array($exte_f, $exte_p)) {
        if(ftp_put($con, $dir . $nome_f, $nome_t, FTP_BINARY)) {
$nome_novo = $dir . substr(md5(time()), 0, 10) . "." . $exte_f;
$newname = ftp_rename($con, $dir . $nome_f, $nome_novo);
            echo "Arquivo <b>" . $nome_f . "</b> enviado com sucesso!<br><br>";

echo "Para visualizar o arquivo, clique no link <a href='http://" . $nome_novo . "'>" . $nome_novo . "</a><br>";

echo "Para fazer mais Uploads, clique no link: <a href='http://aliancaestudantil.awardspace.com/form.html'>Uploads</a>";
            }else{
            echo "Erro ao enviar o arquivo " . $nome_f . "!";
        }
        }else{
        echo "Extensão inválida!";
    }
    }else{
    echo "Tamanho excedido!<br>Tamanho permitido: <b>" . ceil($size_p / 1024 / 1024) . "MB</b>";
}

ftp_close($con);
?>

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...