bidu 0 Denunciar post Postado Janeiro 27, 2009 Ola a todos Estou com um pequeno problema, creio que seja alguma bobeira que ainda não percebi Fiz uma pagina em php que faz upload e download no meu servidor web, por ftp. Ele funciona normalmente quando rodo localmente (localhost), mais se eu coloco esse arquivo no servidor web que é onde deve ficar, ele não funciona nem pra download nem pra upload. Não é apresentado nenhum erro, apenas nada acontece, ja coloquei chmod dando permissão para o arquivo e para as pasta, mais não funfa e ja estou ficando loco. Se alguem souber, desde ja agradeço Abraço a todos Leonardo www.javenessi.com.br ------------------------- Estou postando o meu código, são dois arquivos, esta tudo comentado, assim fica facil de entender //testeftp.php <?php $ftp_user_name = "nome"; $ftp_user_pass = "senha"; $ftp_server = "servidor"; //local onde vai ser salvo o arquivo $local_file = 'htdocs'; //pasta a salvar arquivo no servidor $endereco = "public_html/leonardo"; $arquivo = $_FILES['arquivo']['name']; $arquivo_local = $_FILES['arquivo']; //$tamanho = filesize($arquivo); $tamanho = $_FILES['arquivo']['size']; echo ("$tamanho bytes <br>"); $pastax = $endereco.$arquivo; // Cria a conexão $conn_id = ftp_connect($ftp_server); // login com o nome de usuário e senha $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); //----------------INÍCIO CONFERE CONEXÃO-------------------- if ((!$conn_id) || (!$login_result)) { echo ("A conexão FTP falhou!"); echo "Tentou conectar ao servidor $ftp_server para o usuário $ftp_user_name"; exit; } else { echo "Conectado ao servidor $ftp_server, para o usuário $ftp_user_name<br>"; } //-----------------FIM CONFERE CONEXÃO--------------------- //da permissão, não sei se esta certo chmod($ftp_server,0777); chmod($pastax,0777);; //------------------------INÍCIO UPLOAD---------------------------------------------------------- if($_SERVER['REQUEST_METHOD']== 'POST' and !empty($_POST)){ $nome_original_arquivo = $arquivo_local['name']; // separando nome da extensão list($nome_arquivo, $extensao_arquivo) = explode(".", $nome_original_arquivo); // gerando um nome aleatório e único $nome_aleatorio_arquivo = $nome_arquivo; // novo nome completo com extensão original $novo_nome_completo = $nome_aleatorio_arquivo . "." . $extensao_arquivo; // movendo o arquivo do diretório temporário do PHP para um novo local if (!move_uploaded_file($arquivo_local['tmp_name'], "./$novo_nome_completo")) { $erro .= ". Erro no envio do arquivo.\\n"; } if ($erro == "") { echo $erro = "Arquivo enviado com sucesso"; } // carrega o arquivo no servidor $upload = ftp_put($conn_id, $pastax, $arquivo, FTP_ASCII); // confere o upload do arquivo if (!$upload) { echo "O upload FTP falhou!"; } else { echo "Carregado o arquivo no servidor $ftp_server como $arquivo"; //deleta arquivo do apache unlink($arquivo); } } //------------------------FIM UPLOAD------------------------------------------------ //--------------INÍCIO DOWNLOAD----------------------- // obtém o conteúdo do diretório atual $contents = ftp_nlist($conn_id, "public_html/leonardo"); for($i = 0; $i < sizeof($contents); $i++){ $partes = $contents[$i]; //separa o nome do arquivo do seu endereco $parte = explode("/", $partes); $parte = $parte[2]; $tam = ftp_size($conn_id, "public_html/leonardo/$parte"); $html .= "<tr><td>$parte tamanho $tam bytes</td><td><a href='verifica.php?parte=$partes&nome=$parte' class='a'>download<a></td></tr>"; } //recebe resposta do verifica.php if($_SERVER['REQUEST_METHOD']== 'GET' and !empty($_GET)){ $resposta = $_GET['resposta']; echo($resposta); } //-------------------FIM DOWNLOAD---------------------------------------- ftp_close($conn_id); ?> </script> <html> <head><title></title> <style type="text/css"> .a{color:#000000;text-decoration:none;font-weight:bold;font-family:arial;font-size:14px;font-style: italic} .a:hover{color:#ff8C00;text-decoration:none;font-weight:bold;font-family:arial;font-size:16px;font-style: italic} .b{color:#000000;font-weight:bold;font-family:arial;font-size:14px;font-style: italic}; </style> </head> <body> <form action="<?= $_SERVER['SCRIPT_NAME'] ?>" method="POST" enctype="multipart/form-data" name="login"> <hr> <div align="center" valign="top" class="b">UPLOAD</div> <div> Foto:<input name="arquivo" type="file" id="arquivo"><br> Comentário:<br> <textarea name="comentario" cols="50"></textarea><br> <input type="submit" value="Enviar"> </div><br> <hr> <div align="center" valign="top" class="b">DOWNLOAD</div> <table border="0"> <?=$html?> </table> <hr> </form> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites
metalheart 0 Denunciar post Postado Janeiro 27, 2009 Seu servidor localhost é Windows ou Linux? É o mesmo sistema do servidor onde vão ficar os arquivos na net? Bom, verifique novamente as permissões e os caminhos dos diretórios, pois sem uma mensagem de erro fica difícil... :) flw Compartilhar este post Link para o post Compartilhar em outros sites
bidu 0 Denunciar post Postado Janeiro 27, 2009 //verifica.php <?php $parte = $_GET['parte'];; $nome = $_GET['nome']; $ftp_user_name = "nome"; $ftp_user_pass = "senha"; $local_file = 'htdocs'; $ftp_server = "servidor"; // Cria a conexão $conn_id = ftp_connect($ftp_server); // login com o nome de usuário e senha $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); //faz o download if(ftp_get($conn_id,$local_file, $parte, FTP_ASCII)){ $resposta = "download realizado com sussesso"; rename("htdocs", $nome); } else{ $resposta = "falha no download"; } //redireciona o arquivo baixado do htdocs para a pasta indicada rename($nome, "c:/teste/$nome"); header("location: testeftp.php?resposta=$resposta"); ftp_close($conn_id); exit; ?>------------------------------Não sei disse se é linux, mais o engraçado é que este código quando roda na minha máquina, acessando o servidor web por ftp, ele funciona normalmente fazendo upload, download, lista os arquivos existentes e me da o tamanho dos arquivos que no servidor web existem. Agora quando coloco esse arquivo no servidor web e acesso por httpd, a pagina abre normal, ele tbm lista os arquivos e me da o tamanho, mais o upload e download não funcionam. Sera que tem que muda alguma coisa quando o arquivo esta na web? tem alguma diferença de quando esta na maquina loal(localhost). Não sei porq não funfa, ja pesquisei em varios foruns e tem mais pessoas com a mesma duvida, mais não encontrei a resposta. Valeu a todos Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Janeiro 27, 2009 você precisa dar CMOD 777 na pasta que vai receber o arquivo de upload. Permissão para Ler, Gravar e Executar. No teu programa FTP vendo as propriedades da pasta, você vê isso. Compartilhar este post Link para o post Compartilhar em outros sites
bidu 0 Denunciar post Postado Janeiro 27, 2009 Eu coloquei assim no código //permissão dos diretórios e arquivos chmod($arquivo, 0777); chmod($arquivo_local, 0777); chmod($ftp_server, 0777); chmod($endereco, 0777); chmod($pastax, 0777); Dei permissão em tudo oque podia pelo php mesmo, mais mesmo assim não vai. Engraçado que esse programa usando no localhost, eu consigo mandar arquivo pro servidor web, e não me pede autorização. Compartilhar este post Link para o post Compartilhar em outros sites
bidu 0 Denunciar post Postado Janeiro 28, 2009 Ninguem nunca passou por isso? ajuda please Compartilhar este post Link para o post Compartilhar em outros sites