Ir para conteúdo

POWERED BY:

Arquivado

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

biocyber

UPLOAD - ftp

Recommended Posts

Pessoal , estou com um sério problema preciso enviar imagens utilizando ftp_put, o script esta ok até utilizar o ftp_put, a imagem não envia(ps nao posso utilizar move_upload_file) tem que ser relacionado a função direta de ftp.segue abaixo o script:<? $dir = "C:/Domains/dominio.com.br/wwwroot/upload2/image/"; //diretorio para a copia $arqLocal = $_FILES['arqLocal']['tmp_name']; //nome temporário do arquivo que o formulario enviou echo $arqLocal."<br><br>"; if ($arqLocal){ $arqServidor = $dir . basename($_FILES['arqLocal']['name']); //nome real do arquivo echo $arqServidor."<br><br>"; $conn_id = ftp_connect("ftp.dominio.com.br"); //conecta no ftp if ($conn_id) echo "Conectado ao servidor FTP.<br>"; $login_result = ftp_login($conn_id, "user", "senha"); //loga no ftp if ($login_result) echo "Logado com susseso.<br>"; ftp_chdir($conn_id, $dir); //abre o diretorio para a copia $upload = ftp_put($conn_id,"$arqLocal","$arqServidor",FTP_BINARY); //copia o arquivo para o ftp if ($upload) echo "Arquivo enviado. <br>"; else echo "<br><br>FALHA NO ENVIO. <br>"; ftp_quit($conn_id); //faz o logoff no FTP exit; }?> aguardo, um help..vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

biocyber,Também enfrentei este problema. Fiquei indignado com meu host em não poder usar o "move_upload_file" e ter que mandar tudo por FTP. Também tive problema com a função ftp_put, que teimava em dar erro. Então aproveitei e criei duas funções, uma para enviar e outra para apagar arquivos. Pra mim, elas estão sendo MUITO úteis e acelerando o desenvolvimento. Apresento-as abaixo:

<?  function UploadArquivo($nome_arquivo,$tamanho,$tipos,$path,$arquivo_nome) {    // PARÂMETROS    // nome_arquivo --> caminho e nome do arquivo localmente    // tamanho --> tamanho-limite do arquivo (em bytes)    // tipos --> tipos permitidos (ver switch)    // path --> diretório do servidor onde será gravado o arquivo, sem o "../"    // arquivo_nome --> nome do arquivo que será gravado no servidor, não precisa ter a extensão    // SIGNIFICADO DOS VALORES DE RETORNO    // 0 - OK    // 1 - Formato de arquivo inválido - Arquivo em formato inválido! Corrija e tente novamente.    // 2 - O tamanho do arquivo excedeu o permitido - Arquivo muito grande! Observe o limite de tamanho, corrija e tente novamente.    // 3 - Erro ao logar no servidor FTP - Problema no envio do arquivo. Tente novamente.    // 4 - Erro ao acessar o diretório. Ele pode não ter sido criado ou está sem permissão de acesso - Problema no envio do arquivo. Tente novamente.    // 5 - Problema no envio do arquivo - Problema no envio do arquivo. Tente novamente.    // 6 - A largura do arquivo excedeu o permitido - Largura da imagem muito grande. Observe o limite, corrija e tente novamente.    // 7 - A altura do arquivo excedeu o permitido - Altura da imagem muito grande. Observe o limite, corrija e tente novamente.    // 8 - Nenhum arquivo para upload - Nenhum arquivo para upload. Selecione um arquivo e tente novamente e tente novamente.    $retorno = 0;    // Nenhum arquivo selecionado para upload    if ($nome_arquivo == '') {      $retorno = 8;    }    if ($nome_arquivo != '') {      // Prepara a variável do arquivo      $arquivo = isset($nome_arquivo) ? $nome_arquivo : FALSE;      // Tamanho máximo do arquivo (em bytes)      $config["tamanho"] = $tamanho;      // FAZ A ANÁLISE DO ARQUIVO      if ($arquivo) {        // NO MOMENTO, NÃO ESTOU VALIDANDO O TIPO DO ARQUIVO (MIME-TYPE), SÓ A EXTENSÃO        // Se achar conveniente, pode ser criada a validação pelo Mime-Type        // Verifica se o mime-type do arquivo é de texto        //if ((!eregi("^application\/(pdf|msword|zip)$", $arquivo["type"])) and (!eregi("^text\/(plain)$", $arquivo["type"]))) {        //  $retorno = 1;        //}        // TIPOS/EXTENSÕES DE ARQUIVOS        switch ($tipos) {          // -----------------------------------------------------          // Imagem de Capa da Galeria          case 0:            // Pega extensão do arquivo            preg_match("/\.(jpg){1}$/i", $arquivo["name"], $ext);            // Verifica a extensão do arquivo            if (!$ext == "jpg") {              $retorno = 1;            } else {              // Verifica tamanho do arquivo              if ($arquivo["size"] > $config["tamanho"]) {                $retorno = 2;              } else {                // Verifica as dimensões da foto                $tamanhos = getimagesize($arquivo["tmp_name"]);                // Verifica largura                if($tamanhos[0] = "75") {                    $retorno = 6;                }                // Verifica altura                if($tamanhos[1] = "100") {                    $retorno = 7;                }              }            }          break;          // -----------------------------------------------------          // Imagem Miniatura do Colunista          case 1:            // Pega extensão do arquivo            preg_match("/\.(gif|jpg|png){1}$/i", $arquivo["name"], $ext);            // Verifica a extensão do arquivo            if ((!$ext == "gif") and (!$ext == "jpg") and (!$ext == "png")) {              $retorno = 1;            } else {              // Verifica tamanho do arquivo              if ($arquivo["size"] > $config["tamanho"]) {                $retorno = 2;              } else {                // Verifica as dimensões da miniatura                $tamanhos = getimagesize($arquivo["tmp_name"]);                // Verifica largura                if($tamanhos[0] > "130") {                    $retorno = 6;                }                // Verifica altura                if($tamanhos[1] > "40") {                    $retorno = 7;                }              }            }          break;          // -----------------------------------------------------          // Áudio de Notícia          case 2:            // Pega extensão do arquivo            preg_match("/\.(mp3|wma|wav){1}$/i", $arquivo["name"], $ext);            // Verifica a extensão do arquivo            if ((!$ext == "mp3") and (!$ext == "wma") and (!$ext == "wav")) {              $retorno = 1;            } else {              // Verifica tamanho do arquivo              if ($arquivo["size"] > $config["tamanho"]) {                $retorno = 2;              }            }          break;          // -----------------------------------------------------          // Download de Notícia          case 3:            // Pega extensão do arquivo            preg_match("/\.(pdf|txt|doc|rtf|zip){1}$/i", $arquivo["name"], $ext);            // Verifica a extensão do arquivo            if ((!$ext == "pdf") and (!$ext == "txt") and (!$ext == "doc") and (!$ext == "rtf") and (!$ext == "zip")) {              $retorno = 1;            } else {              // Verifica tamanho do arquivo              if ($arquivo["size"] > $config["tamanho"]) {                $retorno = 2;              }            }          break;        }        // VERIFICAÇÃO DE DADOS OK, NENHUM ERRO OCORRIDO        if ($retorno == 0) {          // Acrescenta a extensão ao nome do arquivo          $arquivo_nome = $arquivo_nome.".".$ext[1];          // ATRIBUI VALOR PARA ALGUMAS VARIÁVEIS          // Arquivo que será enviado          $arquivo_enviar = $arquivo["tmp_name"];          // EXECUTA O UPLOAD DO ARQUIVO          include("config/ftp.php");          if ($login_result == 1) {            // Acessa o diretório            if (@!ftp_chdir($con_ftp, $path)) {              $retorno = 4;            }            // Tenta enviar o arquivo            if (($retorno == 0) and (@!ftp_put($con_ftp, $arquivo_nome, $arquivo_enviar, FTP_BINARY))) {              $retorno = 5;            }          } else {            $retorno = 3;          }          include("config/ftp_close.php");        }      }    }    // SE NÃO HOUVER NENHUM ERRO, RETORNA 3 VALORES    // [0] - 0 para OK ou o número do erro    // [1] - path do arquivo enviado para o servidor + nome do arquivo    // [2] - nome do arquivo enviado para o servidor    if ($retorno == 0) {      return array ($retorno, $path, $arquivo_nome);    } else {      return array ($retorno, "", "");    }  }  function ApagarArquivo($arquivo) {    // PARÂMETROS    // arquivo --> path + nome do arquivo que será apagado do servidor    // SIGNIFICADO DOS VALORES DE RETORNO    // 0 - OK    // 1 - Erro ao logar no servidor FTP - Problema ao apagar o arquivo. Tente novamente.    // 2 - Problema ao apagar o arquivo - Problema ao apagar o arquivo. Tente novamente.    $retorno = 0;    // APAGA A IMAGEM    include("config/ftp.php");    if ($login_result == 1) {      // Tenta apagar o arquivo      if (@!ftp_delete($con_ftp, $arquivo)) {        $retorno = 2;      }    } else {      $retorno = 1;    }    include("config/ftp_close.php");    // RETORNA O RESULTADO    return $retorno;  }?>

Daí deu certo. Sinceramente, não lembro qual era o erro. Mas poste o erro aí que podemos dar uma olhada.Outra coisa, acabei tendo que instalar um servidor FTP na minha máquina, para testar localmente. Sugiro o Filezilla, software opensource muito leve.Espero que tenha ajudado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

biocyber,

 

Também enfrentei este problema. Fiquei indignado com meu host em não poder usar o "move_upload_file" e ter que mandar tudo por FTP. Também tive problema com a função ftp_put, que teimava em dar erro. Então aproveitei e criei duas funções, uma para enviar e outra para apagar arquivos. Pra mim, elas estão sendo MUITO úteis e acelerando o desenvolvimento. Apresento-as abaixo:

 

<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'><?

function UploadArquivo($nome_arquivo,$tamanho,$tipos,$path,$arquivo_nome) {

// PARÂMETROS

// nome_arquivo --> caminho e nome do arquivo localmente

// tamanho --> tamanho-limite do arquivo (em bytes)

// tipos --> tipos permitidos (ver switch)

// path --> diretório do servidor onde será gravado o arquivo, sem o "../"

// arquivo_nome --> nome do arquivo que será gravado no servidor, não precisa ter a extensão

 

// SIGNIFICADO DOS VALORES DE RETORNO

// 0 - OK

// 1 - Formato de arquivo inválido - Arquivo em formato inválido! Corrija e tente novamente.

// 2 - O tamanho do arquivo excedeu o permitido - Arquivo muito grande! Observe o limite de tamanho, corrija e tente novamente.

// 3 - Erro ao logar no servidor FTP - Problema no envio do arquivo. Tente novamente.

// 4 - Erro ao acessar o diretório. Ele pode não ter sido criado ou está sem permissão de acesso - Problema no envio do arquivo. Tente novamente.

// 5 - Problema no envio do arquivo - Problema no envio do arquivo. Tente novamente.

// 6 - A largura do arquivo excedeu o permitido - Largura da imagem muito grande. Observe o limite, corrija e tente novamente.

// 7 - A altura do arquivo excedeu o permitido - Altura da imagem muito grande. Observe o limite, corrija e tente novamente.

// 8 - Nenhum arquivo para upload - Nenhum arquivo para upload. Selecione um arquivo e tente novamente e tente novamente.

$retorno = 0;

 

// Nenhum arquivo selecionado para upload

if ($nome_arquivo == '') {

$retorno = 8;

}

 

if ($nome_arquivo != '') {

// Prepara a variável do arquivo

$arquivo = isset($nome_arquivo) ? $nome_arquivo : FALSE;

// Tamanho máximo do arquivo (em bytes)

$config["tamanho"] = $tamanho;

 

// FAZ A ANÁLISE DO ARQUIVO

if ($arquivo) {

// NO MOMENTO, NÃO ESTOU VALIDANDO O TIPO DO ARQUIVO (MIME-TYPE), SÓ A EXTENSÃO

// Se achar conveniente, pode ser criada a validação pelo Mime-Type

// Verifica se o mime-type do arquivo é de texto

//if ((!eregi("^application\/(pdf|msword|zip)$", $arquivo["type"])) and (!eregi("^text\/(plain)$", $arquivo["type"]))) {

// $retorno = 1;

//}

 

// TIPOS/EXTENSÕES DE ARQUIVOS

switch ($tipos) {

// -----------------------------------------------------

// Imagem de Capa da Galeria

case 0:

// Pega extensão do arquivo

preg_match("/\.(jpg){1}$/i", $arquivo["name"], $ext);

 

// Verifica a extensão do arquivo

if (!$ext == "jpg") {

$retorno = 1;

} else {

// Verifica tamanho do arquivo

if ($arquivo["size"] > $config["tamanho"]) {

$retorno = 2;

} else {

// Verifica as dimensões da foto

$tamanhos = getimagesize($arquivo["tmp_name"]);

// Verifica largura

if($tamanhos[0] = "75") {

$retorno = 6;

}

// Verifica altura

if($tamanhos[1] = "100") {

$retorno = 7;

}

}

}

break;

 

// -----------------------------------------------------

// Imagem Miniatura do Colunista

case 1:

// Pega extensão do arquivo

preg_match("/\.(gif|jpg|png){1}$/i", $arquivo["name"], $ext);

 

// Verifica a extensão do arquivo

if ((!$ext == "gif") and (!$ext == "jpg") and (!$ext == "png")) {

$retorno = 1;

} else {

// Verifica tamanho do arquivo

if ($arquivo["size"] > $config["tamanho"]) {

$retorno = 2;

} else {

// Verifica as dimensões da miniatura

$tamanhos = getimagesize($arquivo["tmp_name"]);

// Verifica largura

if($tamanhos[0] > "130") {

$retorno = 6;

}

// Verifica altura

if($tamanhos[1] > "40") {

$retorno = 7;

}

}

}

break;

 

// -----------------------------------------------------

// Áudio de Notícia

case 2:

// Pega extensão do arquivo

preg_match("/\.(mp3|wma|wav){1}$/i", $arquivo["name"], $ext);

 

// Verifica a extensão do arquivo

if ((!$ext == "mp3") and (!$ext == "wma") and (!$ext == "wav")) {

$retorno = 1;

} else {

// Verifica tamanho do arquivo

if ($arquivo["size"] > $config["tamanho"]) {

$retorno = 2;

}

}

break;

 

// -----------------------------------------------------

// Download de Notícia

case 3:

// Pega extensão do arquivo

preg_match("/\.(pdf|txt|doc|rtf|zip){1}$/i", $arquivo["name"], $ext);

 

// Verifica a extensão do arquivo

if ((!$ext == "pdf") and (!$ext == "txt") and (!$ext == "doc") and (!$ext == "rtf") and (!$ext == "zip")) {

$retorno = 1;

} else {

// Verifica tamanho do arquivo

if ($arquivo["size"] > $config["tamanho"]) {

$retorno = 2;

}

}

break;

}

 

// VERIFICAÇÃO DE DADOS OK, NENHUM ERRO OCORRIDO

if ($retorno == 0) {

// Acrescenta a extensão ao nome do arquivo

$arquivo_nome = $arquivo_nome.".".$ext[1];

 

// ATRIBUI VALOR PARA ALGUMAS VARIÁVEIS

// Arquivo que será enviado

$arquivo_enviar = $arquivo["tmp_name"];

 

// EXECUTA O UPLOAD DO ARQUIVO

include("config/ftp.php");

if ($login_result == 1) {

// Acessa o diretório

if (@!ftp_chdir($con_ftp, $path)) {

$retorno = 4;

}

// Tenta enviar o arquivo

if (($retorno == 0) and (@!ftp_put($con_ftp, $arquivo_nome, $arquivo_enviar, FTP_BINARY))) {

$retorno = 5;

}

} else {

$retorno = 3;

}

include("config/ftp_close.php");

}

}

}

 

// SE NÃO HOUVER NENHUM ERRO, RETORNA 3 VALORES

// [0] - 0 para OK ou o número do erro

// [1] - path do arquivo enviado para o servidor + nome do arquivo

// [2] - nome do arquivo enviado para o servidor

if ($retorno == 0) {

return array ($retorno, $path, $arquivo_nome);

} else {

return array ($retorno, "", "");

}

}

 

function ApagarArquivo($arquivo) {

// PARÂMETROS

// arquivo --> path + nome do arquivo que será apagado do servidor

 

// SIGNIFICADO DOS VALORES DE RETORNO

// 0 - OK

// 1 - Erro ao logar no servidor FTP - Problema ao apagar o arquivo. Tente novamente.

// 2 - Problema ao apagar o arquivo - Problema ao apagar o arquivo. Tente novamente.

$retorno = 0;

 

// APAGA A IMAGEM

include("config/ftp.php");

if ($login_result == 1) {

// Tenta apagar o arquivo

if (@!ftp_delete($con_ftp, $arquivo)) {

$retorno = 2;

}

} else {

$retorno = 1;

}

include("config/ftp_close.php");

 

// RETORNA O RESULTADO

return $retorno;

}

?></div>

 

Daí deu certo. Sinceramente, não lembro qual era o erro. Mas poste o erro aí que podemos dar uma olhada.

 

Outra coisa, acabei tendo que instalar um servidor FTP na minha máquina, para testar localmente. Sugiro o Filezilla, software opensource muito leve.

 

Espero que tenha ajudado.

Porém

 

isto: // nome_arquivo --> caminho e nome do arquivo localmente

 

Teria que colocar o nome e o diretório por exemplo da minha maquina aqui: C:/arquivo.zip ????

Julio Cesar

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.