Ir para conteúdo

POWERED BY:

Arquivado

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

matthee

Upload de arquivos.

Recommended Posts

Boa noite pessoal, estou tentando realizar o upload de arquivos com um código simples, só a titulo de testes, mas não estou conseguindo e a propriedade de erros do array files está me devolvendo 0 o que segundo a documentação diz que é o valor que inidica que não houve erros.

 

Segue as linhas de código.

 

<html>
	<head>
	    <title>Upload de Arquivos com PHP</title>
	</head>
	<body>
	 
		<form method="post" action="upload.php" enctype="multipart/form-data">
			<label>Arquivo:</label>
			<input type="file" name="arquivo" />
			<input type="submit" value="Enviar" />
		</form>
	 
	</body>
</html>
<?php

	$_UP['erros'][0] = 'Não houve erro';
	$_UP['erros'][1] = 'O arquivo no upload é maior do que o limite do PHP';
	$_UP['erros'][2] = 'O arquivo ultrapassa o limite de tamanho especifiado no HTML';
	$_UP['erros'][3] = 'O upload do arquivo foi feito parcialmente';
	$_UP['erros'][4] = 'Não foi feito o upload do arquivo';

	$name  = $_FILES["arquivo"]["name"];

	echo $_UP["erros"][$_FILES["arquivo"]["error"]];

	if(move_uploaded_file($_FILES["arquivo"]["tmp_name"], "/galerry/".$name))
		echo "Upload realizado com sucesso!!";

?>

Como podem ver o código é mt simples, eu verifiquei a pasta temporaria que o php está utilizando e o diretório pai do mesmo não requer nenhuma autorização especial. Alguém sabe me dizer se é necessario algo mais para realizar o upload?

Compartilhar este post


Link para o post
Compartilhar em outros sites

A sua dúvida reside no fato de não apresentar erros, ou de o upload não funcionar?

Pois caso seja por o upload não funcionar, isso provavelmente está ocorrendo porque você definiu um caminho absoluto no segundo parâmetro do move_uploaded_file.

(Leia :seta: http://www.google.com.br/search?q=caminho+relativo+x+absoluto&oq=caminho+relativo+x+absoluto&sourceid=chrome&ie=UTF-8 )

 

Você pode fazer o seguinte, para testar:

1 - Crie uma pasta no mesmo nível do seu arquivo de upload (coloque o arquivo .php na mesma pasta que essa pasta nova).

2 - Se for linux, dê permissão chmod para essa nova pasta.

3 - Mude o parâmetro que citei do seu script para: 'a_pasta_que_vc_criou' . DIRECTORY_SEPARATOR . $name

Caso você não tenha entendido o motivo do DIRECTORY_SEPARATOR, ele é somente uma constante (variável que não muda o valor) interno do PHP que simboliza a barra (/) ou barra invertida (\), de acordo com o sistema que está executando o programa.

Isso pois, se o seu ambiente for Windows, os endereços são escritos dessa forma: C:\Users\Pasta\Etc. Já no linux, é assim: /etc/var/file

 

[]'s!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara o caminho está correto isso é fato, ele entra em uma pasta que está no mesmo nivel que o php, eu uso linux e já dei permissão 777 na pasta tmp para onde vai os arquivos temporarios e para pasta /www/galerry também já dei permissão 777, agora vou tentar colocar o arquivo php na mesma pasta para onde as fotos irão mas acho que isso não vai ajudar mt.



AA claro eu tirei o 1º / que deixava a pasta galerry como caminho absoluto



Velho vc não vai acreditar eu tive que da permissão desde o começo de tudo fiz isso:

 

chmod 777 /

chmod 777 /home

chmod 777 /home/matheus

chmod 777 /home/matheus/www

chmod 777 /home/matheus/www/galerry

 

Ai funcinou, obrigado.



Velho pra min não precisar fazer outro tópico, eu estou tentando mandar email com php consultei a documentação e pelo que percebi o seguine código seria suficiente:

<?php

    $emailenviar = "oEmailEstáCorreto";
    $assunto     = "Email com php.";
     
    $enviaremail = mail($emailenviar, $assunto, "Teste Teste Teste Teste");
    if($enviaremail){
  	  echo "email enviado";
    } else {
   	  echo "erro";
 
    }
?>





O que está na variavel email enviar, não é o que estou usando no código eu estou usando o meu endereço de email correto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

é porque houve recentemente a troca da porta 25 pela 587.

Isso não se aplica a função mail, neste caso a configuração é realizada em outra parte do servidor, para a função mail continua tudo na mesma.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso não se aplica a função mail, neste caso a configuração é realizada em outra parte do servidor, para a função mail continua tudo na mesma.

 

Então como faço para usar a função mail?, porque não to conseguindo mais usar não!!só pela phpmailer

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então como faço para usar a função mail?, porque não to conseguindo mais usar não!!só pela phpmailer

Essas peguntas você tem que fazer ao suporte do seu servidor... pode ser que eles tenham barrado a função, só isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu estou utilizando aqui em casa, como que não está funcionando então ESerra? A sintaxe está correta.

Você está usando em localhost? Instalou o servidor de e-mail? Testando diretamente por ele os e-mails estão sendo enviados? Você está usando windows ou linux?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou usando em localhost, uso Ubuntu 12.04 e não instalei o servidor de email não fazia a menor idéia de que isso era necessario.

Pois é... então ai é você tem que fazer a configuração do servidor local (conseguindo usar a função mail) ou pode usar alguma classe para se conectar a um servidor de e-mail externo e enviar por ele.

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.