Ir para conteúdo

POWERED BY:

Arquivado

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

lpc

[Resolvido] upload não funciona

Recommended Posts

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

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

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

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

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.txt
Como a mensagem de erro acusa como resposta:

/www/remessa/arquivotexto.txt
creio que está copiando o arquivo correto, ou seja, o erro é outro!

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

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

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

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

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

perfeito entao

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.