lpc 0 Denunciar post Postado Dezembro 12, 2008 Boa noite a todos! Desculpem enviar esta mensagem, pois já pesquisei e tem bastante material, não há dúvida. Pelo visto, tenho muito o que aprender, já que não consigo perceber o que está errado. Fiz dois arquivos php, um que selecionar o que quero enviar e outro, que faz (deveria fazer) o upload do arquivo para o ftp. O problema é que ao receber, via POST, o caminho completo do arquivo a ser enviado, não funciona, só dá certo se coloco no código o caminho completo, o que não é muito interessante. Consigo fazer o login com o ftp normalmente, mas o upload falha. Se puderem me dar uma luz... acho que é simples, mas... O principal do codigo segue abaixo: (garimpado dos fóruns, pois ainda não tenho esta capacidade) <?php ( conexão com o banco --> funcionando legal....) // $file = $_POST['arquivo']; -----> deveria ser assim, mas não funcionou!!!! $file = '/var/www/testes/arquivotexto.txt'; ----> assim funciona, mas não é o ideal... $remote_file = '/www/remessa/readme.txt'; $conn_id = ftp_connect($ftp_server); // login $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); // upload do arquivoe if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) { echo "Sucesso no upload do arquivo $file\n"; } else { echo "Falha no upload do arquivo $file\n"; } // fecha ftp_close($conn_id); ?> Valeu pela ajuda! Paulo Compartilhar este post Link para o post Compartilhar em outros sites
~TiuTalk~ 7 Denunciar post Postado Dezembro 12, 2008 Você tem que usar FTP pra fazer o upload? Um upload normal com move_uploaded_file() não resolveria? Abraços Compartilhar este post Link para o post Compartilhar em outros sites
lpc 0 Denunciar post Postado Dezembro 13, 2008 Boa tarde! Em primeiro lugar, obrigado pelo conselho e por editarem meu código. Prometo não esquecer! Quanto a fazer o upload de outra forma (~TiuTalk~ ... upload normal com move_uploaded_file() ... ) acredito que não tenha problema. O que preciso é permitir a algumas pessoas que façam o upload de documentos para uma pasta do site (no servidor). É possível fazer assim? Vou procurar por textos que falem a respeito. Agradeço a ajuda! Paulo Compartilhar este post Link para o post Compartilhar em outros sites
lpc 0 Denunciar post Postado Dezembro 14, 2008 Olá! Tentei alterar o código, seguindo as orientações. Peguei no manual um exemplo e tentei adaptar, usando move_uploaded como indicado, mas recebi a resposta abaixo. Até onde entendi, é porque não há a pasta no destino (acho), mas está lá (www/remessa) com permissão para gravar. O que pode ser? Warning: move_uploaded_file(/www/remessa/arquivotexto.txt) [function.move-uploaded-file]: failed to open stream: No such file or directory in /var/www/testes/upload.php on line 12 Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpItL5Hc' to '/www/remessa/arquivotexto.txt' in /var/www/teste/upload.php on line 12 Falha no upload! Aqui esta alguma informação: Array ( [arquivo] => Array ( [name] => arquivotexto.txt [type] => text/plain [tmp_name] => /tmp/phpItL5Hc [error] => 0 [size] => 24 ) ) Compartilhar este post Link para o post Compartilhar em outros sites
~TiuTalk~ 7 Denunciar post Postado Dezembro 14, 2008 Como é a pasta de destino que você está passando como parâmetro do move_uploaded_file() ? Compartilhar este post Link para o post Compartilhar em outros sites
lpc 0 Denunciar post Postado Dezembro 15, 2008 Na dúvida, estou copiando o código. Após a conexão com o banco, coloquei o seguinte: $uploaddir = 'www/remessa/'; $uploadfile = $uploaddir . $_FILES['arquivo']['name']; print "<pre>"; if (move_uploaded_file($_FILES['arquivo']['tmp_name'], $uploaddir . $_FILES['arquivo']['name'])) { print "O arquivo é valido e foi carregado com sucesso. Aqui esta alguma informação:\n"; print_r($_FILES); } else { print "Falha no upload! Aqui esta alguma informação:\n"; print_r($_FILES); } print "</pre>"; Mais uma vez, obrigado pelo auxílio... Paulo Compartilhar este post Link para o post Compartilhar em outros sites
lpc 0 Denunciar post Postado Dezembro 15, 2008 Complementando, olhei no site e a pasta remessa aparece como "drwxrwxrwx" e a www como "drwxr-xr-x" (creio que deve ser assim), e o caminho do arquivotexto que busco para enviar é: /var/www/testes/arquivotexto.txtComo a mensagem de erro acusa como resposta: /www/remessa/arquivotexto.txtcreio que está copiando o arquivo correto, ou seja, o erro é outro! Abraços! Compartilhar este post Link para o post Compartilhar em outros sites
~TiuTalk~ 7 Denunciar post Postado Dezembro 15, 2008 Tenta tirar o '/www' da pasta pra onde você tá fazendo o upload... Compartilhar este post Link para o post Compartilhar em outros sites
lpc 0 Denunciar post Postado Dezembro 15, 2008 Opa!!!! ~TiuTalk~, fiz isso, deixando apenas remessa/ como pasta destino, sem o www. O resultado que obtive foi: O arquivo é valido e foi carregado com sucesso. Aqui esta alguma informação: Array ( [arquivo] => Array ( [name] => arquivotexto.txt [type] => text/plain [tmp_name] => /tmp/php2NNg6B [error] => 0 [size] => 24 ) )Só tem um problema: ao verificar na pasta remessa, não encontrei o arquivo. Será que está gravando em outro local? Abraços! Compartilhar este post Link para o post Compartilhar em outros sites
GuiCamillo 0 Denunciar post Postado Dezembro 15, 2008 Tenta dar um scandir() na pasta e da uma olhada no que ele retorna. Compartilhar este post Link para o post Compartilhar em outros sites
lpc 0 Denunciar post Postado Dezembro 15, 2008 Ok! Vou pesquisar como fazer isso e ver o que consigo! Compartilhar este post Link para o post Compartilhar em outros sites
~TiuTalk~ 7 Denunciar post Postado Dezembro 15, 2008 lpc, Se a função está retornando true, o arquivo foi movido com sucesso, verifica se você tá olhando a pasta certa e se, por acaso, for um servidor externo e você estiver olhando via FTP, verifica se o cliente de ftp não tem um cache que você precise limpar pra ele carregar novamente a lista dos arquivos da pasta. Abraços Compartilhar este post Link para o post Compartilhar em outros sites
lpc 0 Denunciar post Postado Dezembro 15, 2008 Vivendo e aprendendo!!! Boa dica (as duas...) Usando o scandir pude perceber que realmente está gravando... só que no meu computador. Mas por quê? Não deveria gravar lá no servidor, onde está o site? Encontrei o arquivo em var/www/testes/remessa (estou tentando aprender linux também, portanto não tenho windows aqui...) quando deveria estar em remessa (no caso, www/remessa). Como posso corrigir isso? Compartilhar este post Link para o post Compartilhar em outros sites
lpc 0 Denunciar post Postado Dezembro 15, 2008 Amigos, voltei (tô enchendo, não?) !! Seguinte: copiei o arquivo .htm e .php responsáveis pelo upload para o site e, desta forma, consegui enviar o arquivo para o ftp (pasta remessa). Só que agora fiquei com uma dúvida: como isso ocorreu, se eu não informei o usuário e nem a senha do ftp ? Isso é seguro? Ou devo colocar uma página de login antes da página de upload, para impedir qualquer acesso? Usar move_uploaded_file é relativamente seguro? Abraços! Paulo Compartilhar este post Link para o post Compartilhar em outros sites
lpc 0 Denunciar post Postado Dezembro 18, 2008 Amigos, o problema que levou à abertura deste tópiico está resolvido! Com a ajuda de vocês consegui fazer o upload. Tenho algumas dúvidas, como já puderam perceber, mas vou pesquisar mais um pouco e ver o que encontro a respeito, como por exemplo selecionar o tipo de arquivo que pode ser enviado, colocar uma perfumaria aqui, outra ali, pra não ficar tão básico. Agradeço a todos! Paulo Compartilhar este post Link para o post Compartilhar em outros sites
lpc 0 Denunciar post Postado Dezembro 18, 2008 Valeu por editar, estava tentando descobrir como colocar um [Resolvido] no título!!! Compartilhar este post Link para o post Compartilhar em outros sites
Mário Monteiro 179 Denunciar post Postado Dezembro 18, 2008 perfeito entao Compartilhar este post Link para o post Compartilhar em outros sites