Ir para conteúdo

POWERED BY:

Arquivado

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

Fernando Queiroz

[Resolvido] Upload de imagens

Recommended Posts

Amigos, por favor, já tentei diversas funções, todas funcionam perfeitamente na rede local, mas nenhuma faz o Up quando os arquivos estão na internet!

 

Vou postar minha ultima tentativa aqui...

 

index23.php

<?php

require_once "class_upload.php";

$upload = new Upload();
$upload->Envia_Arquivo();

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Upload</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form action="index23.php" method="post" enctype="multipart/form-data" name="form1">

  <input type="file" name="arquivo">
  <input type="submit" name="Submit" value="Enviar">
</form>
</body>
</html>

class_upload.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<?php
set_time_limit(0); 
include "funcoes23.php";
class Upload
{
	var $arquivo = "";
	var $erro = array ( "0" => "upload execultado com sucesso!",
						"1" => "O arquivo é maior que o permitido pelo Servidor",
						"2" => "O arquivo é maior que o permitido pelo formulario",
						"3" => "O upload do arquivo foi feito parcialmente",	 
						"4" => "Não foi feito o upload do arquivo"
					   );
		
	function Verifica_Upload()
	{
		$this->arquivo = isset($_FILES['arquivo']) ? $_FILES['arquivo'] : FALSE;
		if(!is_uploaded_file($this->arquivo['tmp_name'])) {
			return false;
		}	
		$get = getimagesize($this->arquivo['tmp_name']);
		
		if($get["mime"] != "image/jpeg")
		{	
			echo "<span style=\"color: white; border: solid 1px; background: red;\">Esse foto nao é uma imagem valida</span>";
			exit;
		}
		return true;
	}

	function Envia_Arquivo()
	{
		if($this->Verifica_Upload()) {
			$this->gera_fotos();
			return true;		
		} else {
			echo "<span style=\"color: white; border: solid 1px; background: red;\">".$this->erro[$this->arquivo['error']]."</span>";
		}
	}
	
	function gera_fotos()
	{
		$diretorio = "imagensNews/";
		if(!file_exists($diretorio))
		{
			mkdir($diretorio);
		}
		
		$nome_foto  = "imagem_".time().".jpg";		
		$nome_thumb = "thumb_".time().".jpg";
		
				//determino uma resolução maxima e se a imagem for maior ela sera reduzida
		reduz_imagem($this->arquivo['tmp_name'], 400, 300, $diretorio.$nome_foto);		  
				//passo o tamanho da thumbnail
		reduz_imagem($this->arquivo['tmp_name'], 120, 90, $diretorio.$nome_thumb); 
		echo "<span style=\"color: white; border: solid 1px; background: blue;\">".$this->erro[$this->arquivo['error']]."</span>";
	}	
}

?>
</body>
</html>

funcoes23.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>

<?php
/*Fabyo Guimaraes de Oliveira */
function reduz_imagem($img, $max_x, $max_y, $nome_foto) {

//pega o tamanho da imagem ($original_x, $original_y)
list($width, $height) = getimagesize($img);

$original_x = $width;
$original_y = $height;

// se a largura for maior que altura
if($original_x > $original_y) {
   $porcentagem = (100 * $max_x) / $original_x;	  
} 
else {
   $porcentagem = (100 * $max_y) / $original_y;   
}

$tamanho_x = $original_x * ($porcentagem / 100);
$tamanho_y = $original_y * ($porcentagem / 100);

$image_p = imagecreatetruecolor($tamanho_x, $tamanho_y);
$image   = imagecreatefromjpeg($img);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $tamanho_x, $tamanho_y, $width, $height);


return imagejpeg($image_p, $nome_foto, 100);

}

?>

</body>
</html>

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tem que mostrar que erro esta dando

 

crie um arquivo e cole isso:

 

<?php

phpinfo();

?>

 

e rode ele

 

verifique se file_uploads = On

 

se tiver em Off deixe em On

Amigo, eu fiz o q você pediu, e veio uma lista enorme de configurações, só nao tem o q você pediu pra chekar eu usei com a feramenta contro+F e digitei file_uploads e ele nao achou nada... pode ser algum outro nome? vou te passar o link pra você dar um olhada. . . http://www.brasindoor.com.br/info.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Os erros que ele esta mostrando são:

 

Warning: imagejpeg() [function.imagejpeg]: Unable to open 'imagensNews/imagem_1228491851.jpg' for writing: Permission denied in /home/elite/domains/elitemagazine.com.br/public_html/funcoes23.php on line 36

 

Warning: imagejpeg() [function.imagejpeg]: Unable to open 'imagensNews/thumb_1228491851.jpg' for writing: Permission denied in /home/elite/domains/elitemagazine.com.br/public_html/funcoes23.php on line 36

 

 

Porém ele envia a mensagem de que foi enviada com sucesso, o q não é verdade!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para ter permissão de leitura e escrita, os atributos do diretório devem estar como 0755 (rwxr-xr-x) ou 0777 (rwx-rwx-rwx)

 

Isso apenas servidores Linux!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acesse via ftp clique com o botão direito do mouse em cima da pasta e clique em permissão ou chmod..

 

o padrão é isso..

 

Abraço.

 

Att,

Leandro Barral.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para ter permissão de leitura e escrita, os atributos do diretório devem estar como 0755 (rwxr-xr-x) ou 0777 (rwx-rwx-rwx)

 

Isso apenas servidores Linux!

Como faço pra saber como estão os atributos no diretório?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode ver os atributos do diretório com o comando ls.

Para dar todas as permissões pelo próprio php:

<?php
//chmod('path', 0777);
chmod(getCwd(), 0777); //diretorio atual
?>

Abraço!

 

Edit:digite ls --help no terminal... (ls -la fará o que quer)

Compartilhar este post


Link para o post
Compartilhar em outros sites

acesse via ftp e clique com o botão direito no mouse na pasta e clique em permissão, atributos do arquivo ou chmod..

 

Abraço.

 

Att,

Leandro Barral.

 

Imagem Postada

Amigo, cliquei com o direito em cima da pasta aonde eu gostaria de receber meus arquivos, cliquei tbm na pasta principal de arquivos publicos estas não tem a opção permissão, então cliquei em propriedades e tbm nao encontrei essa opção, só tem uma lingua escrito Geral.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode ver os atributos do diretório com o comando ls.

Para dar todas as permissões pelo próprio php:

<?php
//chmod('path', 0777);
chmod(getCwd(), 0777); //diretorio atual
?>

Abraço!

 

Edit:digite ls --help no terminal... (ls -la fará o que quer)

Não funcionou ele me retorna:

Parse error: syntax error, unexpected T_DEC in /home/elite/domains/elitemagazine.com.br/public_html/ls.php on line 11

 

exatamente a linha do codigo: chmod(getCwd(), 0777);

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tem que mostrar que erro esta dando

 

crie um arquivo e cole isso:

 

<?php

phpinfo();

?>

 

e rode ele

 

verifique se file_uploads = On

 

se tiver em Off deixe em On

Verifiquei agora que o meu file_uploads esta = On ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

RESOLVIDOOOOOOOOOOOOOOOOOOOO

 

http://forum.imasters.com.br/public/style_emoticons/default/natal_w00t.gif (sabe o q é ter vontade de chorar quando consegue algo que a semanas vinha tentando???)

 

OBRIGADO A TODOS , mas foi no #POST3 do leandro (OBRIGADO!) que percebi que a pasta não tinha permissão de escrita então configurei para ESCRITA E DEU CERTO...

Mais uma vez OBRIGADO A TODOS!!!

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.