biocyber 0 Denunciar post Postado Janeiro 26, 2007 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
lucascolferai 0 Denunciar post Postado Janeiro 26, 2007 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
web-julio 0 Denunciar post Postado Junho 13, 2008 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