Jump to content


Photo

Problema Com Input File


  • Faça o login para participar
10 replies to this topic

#1 Josy

Josy

    :*

  • Usuários
  • 662 posts
  • Sexo:Feminino
  • Localidade:Porto Alegre/RS

Posted 23/03/2007, 15:50

<table border='0'>
<?
$consulta = MYSQL_QUERY("SELECT * FROM $tabela5 where id_conteudo='$idcont'") or die ("Erro SQL linha 109");
while($nomecont = mysql_fetch_array($consulta))
{
$cont= $nomecont['nome_conteudo'];
echo "<TR><TD>$nomecont.$nfotos.":</p></TD><TD><input type='file' name='$nomecont.$nfotos'></TD></TR>";
}

if(!$foto1)
{
	$prob = "Não acesse esse o arquivo da 1ª foto diretamente!<br>";
	break1;
}
else 
{
	//VERIFICA O TIPO DE ARQUIVO
	$info = $_FILES['foto1']['type'];
			   ...
}
</table>

$nfotos recebe valor d uma outro consulta q faço antes.. conforme este código é impresso na tela a imagem anexada:

Foto1, foto2, etc.. Mas qdo vou consultar o arquivo q está por ex na input foto1 me aparece na tela sempre "Não acesse esse o arquivo da 1ª foto diretamente!".. como se eu nao tivesse nada lá.. o q pode estar errado?

Attached Files



___________________________________

Josy R.L.
Grupo Plyme
www.plyme.com.br
___________________________________


#2 pgnall

pgnall

    Enable

  • Usuários
  • 383 posts
  • Sexo:Masculino
  • Localidade:http://eduardo.sganzerla.net

Posted 23/03/2007, 16:05

daonde vem a variável $foto1?
Eduardo Sganzerla
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀


www.Eu Sei Escrever.com.br - Adote esta campanha!

#3 Josy

Josy

    :*

  • Usuários
  • 662 posts
  • Sexo:Feminino
  • Localidade:Porto Alegre/RS

Posted 23/03/2007, 16:18

echo "<TR><TD>$nomecont.$nfotos.":</p></TD><TD><input type='file' name='$nomecont.$nfotos'></TD></TR>";

Isso escreve na tela:

foto1
foto2
foto3
foto4
foto5
Sendo q o nome da input recebe o mesmo valor $nomecont.$nfotos', entao consulto as inputs assim:

$foto1 = isset($_FILES['foto1']) ? $_FILES['foto1'] : FALSE;

___________________________________

Josy R.L.
Grupo Plyme
www.plyme.com.br
___________________________________


#4 pgnall

pgnall

    Enable

  • Usuários
  • 383 posts
  • Sexo:Masculino
  • Localidade:http://eduardo.sganzerla.net

Posted 23/03/2007, 16:32

vc pos: enctype="multipart/form-data" no formulário?
Eduardo Sganzerla
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀


www.Eu Sei Escrever.com.br - Adote esta campanha!

#5 Josy

Josy

    :*

  • Usuários
  • 662 posts
  • Sexo:Feminino
  • Localidade:Porto Alegre/RS

Posted 23/03/2007, 16:43

Sim..

<form name="form" method="POST" enctype="multipart/form-data">

E em outra input q recebe outro falor está funcionando direitinho, só nesta q recebe o valor da variavel q nao consegui deixar funcionando

___________________________________

Josy R.L.
Grupo Plyme
www.plyme.com.br
___________________________________


#6 pgnall

pgnall

    Enable

  • Usuários
  • 383 posts
  • Sexo:Masculino
  • Localidade:http://eduardo.sganzerla.net

Posted 23/03/2007, 16:50

não sei se vai resolver, mas tente:

if(!isset($foto1))

Eduardo Sganzerla
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀


www.Eu Sei Escrever.com.br - Adote esta campanha!

#7 Josy

Josy

    :*

  • Usuários
  • 662 posts
  • Sexo:Feminino
  • Localidade:Porto Alegre/RS

Posted 23/03/2007, 17:26

O problema nao é q nao consigo ver o q a variavel $foto1 recebe, é q ela nao tah recebendo nada da input com o nome dela, é alguma coisa errada ai e nao consigo achar:

$foto1 = isset($_FILES['foto1']) ? $_FILES['foto1'] : FALSE;

___________________________________

Josy R.L.
Grupo Plyme
www.plyme.com.br
___________________________________


#8 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 23/03/2007, 22:32

Coloque o código abaixo para identificar os dados que estão sendo enviados:

<?php print_r($_FILES); ?>

Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#9 Josy

Josy

    :*

  • Usuários
  • 662 posts
  • Sexo:Feminino
  • Localidade:Porto Alegre/RS

Posted 27/03/2007, 09:22

Adicionei esta parte no código:

if(!$foto1)
			{
				$prob = "Não acesse esse o arquivo da 1ª foto diretamente!<br>";
				[b]print_r($_FILES);[/b]
				break1;
			}
			else 
			{
				//VERIFICA O TIPO DE ARQUIVO
				$info = $_FILES['foto1']['type'];	
				[b]print_r($_FILES);[/b]
				
				if($_FILES['foto1']['type'] == "image/pjpeg" || $_FILES['foto1']['type'] == "image/gif"  || $_FILES['foto1']['type'] == "image/bmp")
				{
					//DIRETÓRIO PARA ONDE O ARQUIVO SERÁ MOVIDO 	
					$diretorio="./images/";
					$nome = $_FILES['foto1']['tmp_name'];
					$nome2 = mini. $foto1['name'];
								
					//MOVE PARA O DIRETÓRIO DESEJADO
					if (move_uploaded_file($foto1['tmp_name'], $diretorio . $foto1['name']))
					{
						$ok = "Arquivo inserido com sucesso na pasta $diretorio!!<br>";
										
						//VERIFICA TIPO DO ARQUIVO PARA CHAMAR FUNÇÃO CORRETA
						$extensao = strtolower(end(explode('/', $info)));
					
						if ($extensao == 'jpg' || $extensao == 'pjpeg')
						{ 
							///CRIA AMOSTRA DA IMAGEM ORIGINAL
						 	$img = imagecreatefromjpeg($diretorio.$foto1['name']);
					 		$ok2 = $img;
						 	$largurao = imagesx($img);//LARGURA DA AMOSTRA
							$alturao = imagesy($img);//ALTURA AMOSTRA
							$alturad = 50; //DEFINIR ALTURA DA MINIATURA EM PX 
							$largurad = ($largurao*$alturad)/$alturao;//CALCULA A LARGURA DA IMAGEM APARTIR DA LARGURA DA MINIATURA
							$nova = imagecreatetruecolor($largurad,$alturad);//CRIA IMAGEM EM BRANCO
							imagecopyresampled($nova,$img,0,0,0,0,$largurad,$alturad,$largurao,$alturao);//COPIA SOBRE A IMAGEM EM BRANCO A AMOSTRA DIMUNUINDO CONFORME ESPECIFICAÇÕES
						
						
							//imagejpeg($img);//MOSTRA IMAGEM TAMANHO NORMAL
							imagejpeg($nova);//MOSTRA A MINIATURA  
							imagejpeg($nova,$diretorio.$nome2);//SALVA MINIATURA
																 					
							imagedestroy($nova);//LIBERA A MEMÓRIA USADA NA MINIATURA 
							imagedestroy($img);//LIBERA A MEMÓRIA USADA NA AMOSTRA
						}
						else 
						{
							$prob2 = "Não criou a imagem para jpeg!!";
						}
					}
					else 
					{
						$prob2 = "Arquivo não foi transferido para o diretório!!";
					}
				}
				else 
				{
					$prob3 = "Arquivo não é uma imagem!!";
				}
			}

Agora pra mim aparece na pagina este erro:

Array ( [foto_5] => Array ( [name] => [type] => [tmp_name] => [error] => 4 [size] => 0 ) [foto_4] => Array ( [name] => [type] => [tmp_name] => [error] => 4 [size] => 0 ) [foto_3] => Array ( [name] => [type] => [tmp_name] => [error] => 4 [size] => 0 ) [foto_2] => Array ( [name] => [type] => [tmp_name] => [error] => 4 [size] => 0 ) [foto_1] => Array ( [name] => copy.gif [type] => image/gif [tmp_name] => C:\WINDOWS\Temp\phpC9.tmp [error] => 0 [size] => 592 ) [logo] => Array ( [name] => [type] => [tmp_name] => [error] => 4 [size] => 0 ) )

Tah me dando o erro "Arquivo não é uma imagem!!" sendo q a verificação q faço é if($_FILES['foto_1']['type'] == "image/pjpeg" || $_FILES['foto_1']['type'] == "image/gif" || $_FILES['foto_1']['type'] == "image/bmp"), mas pelo q vejo é foto_1 q recebe o arquivo, o q pode estar errado já q [foto_1] => Array ( [name] => copy.gif [type] => image/gif [tmp_name] => C:\WINDOWS\Temp\phpC9.tmp [error] => 0 [size] => 592 ) aparece q é um image/gif??

Edição feita por: Josy, 27/03/2007, 09:45.


___________________________________

Josy R.L.
Grupo Plyme
www.plyme.com.br
___________________________________


#10 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 28/03/2007, 00:52

No código postado você não usou 'foto_1', mas sim 'foto1'.

if($_FILES['foto1']['type'] == "image/pjpeg" || $_FILES['foto1']['type'] == "image/gif"  || $_FILES['foto1']['type'] == "image/bmp")
				{

Edição feita por: Eclesiastes, 28/03/2007, 00:52.
Correção.

Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#11 Josy

Josy

    :*

  • Usuários
  • 662 posts
  • Sexo:Feminino
  • Localidade:Porto Alegre/RS

Posted 28/03/2007, 13:59

Funcionou direitinho assim:

//INSERI IMAGENS E MINIATURAS NA PASTA 
			if(!$foto1)
			{
				$prob = "Não acesse o arquivo da 1ª foto diretamente!<br>";
				break1;
			}
			else 
			{
				//VERIFICA O TIPO DE ARQUIVO
				$info = $_FILES['foto_1']['type'];
				print_r($_FILES);	
			
				if($_FILES['foto_1']['type'] == "image/pjpeg" || $_FILES['foto_1']['type'] == "image/gif"  || $_FILES['foto_1']['type'] == "image/bmp")
				{
					$prob = "O arquivo é uma imagem!!";
				
					//DIRETÓRIO PARA ONDE O ARQUIVO SERÁ MOVIDO 	
					$diretorio="./images/";
										
					//VERIFICA TIPO DO ARQUIVO PARA CHAMAR FUNÇÃO CORRETA
					$extensao = strtolower(end(explode('/', $info)));
					if ($extensao == 'pjpeg')
					{
						$extensao = 'jpeg';
					}
																									
					//MOVE PARA O DIRETÓRIO DESEJADO
					if (move_uploaded_file($foto1['tmp_name'], $diretorio . $nome.'.foto1.'.$extensao))
					{
						$nome2 = $nome.'.minifoto1.'.$extensao;
						$prob = "Logo inserido com sucesso na pasta $diretorio com nome de $nome.foto1.$extensao!!<br>";
						
						//ENVIA IMAGEM ORIGINAL PARA DIRETÓRIO
						$CriarImagemDe= "imagecreatefrom".$extensao;
						$img = $CriarImagemDe($diretorio.$nome.'.foto1.'.$extensao);
						$largurao = imagesx($img);//LARGURA DA AMOSTRA
						$alturao = imagesy($img);//ALTURA AMOSTRA
						$alturad = 50; //DEFINIR ALTURA DA MINIATURA EM PX 
						$largurad = ($largurao*$alturad)/$alturao;//CALCULA A LARGURA DA IMAGEM APARTIR DA LARGURA DA MINIATURA
						$nova = imagecreatetruecolor($largurad,$alturad);//CRIA IMAGEM EM BRANCO
						imagecopyresampled($nova,$img,0,0,0,0,$largurad,$alturad,$largurao,$alturao);//COPIA SOBRE A IMAGEM EM BRANCO A AMOSTRA DIMUNUINDO CONFORME ESPECIFICAÇÕES
						//VERIFICA TIPO DO ARQUIVO PARA CHAMAR FUNÇÃO CORRETA
						$imageformato = "image".$extensao;
						//$imageformato($img);//MOSTRA IMAGEM TAMANHO NORMAL
						//$imageformato($nova);//MOSTRA A MINIATURA
						$imageformato($nova,$diretorio.$nome2);//SALVA MINIATURA
					
						//Destruimos o cache da imagem para liberar uma nova thumb
						ImageDestroy($nova); 
						ImageDestroY($img); 
					}
					else 
					{
						$prob = "Arquivo não foi transferido para o diretório!!";
					}
				}
				else 
				{
					$prob = "Arquivo não é uma imagem!!";
				}
			}

Ele salva a imagem com nome_clientefoto1.extensao e a sua miniatura tb.. vlw pela ajuda

___________________________________

Josy R.L.
Grupo Plyme
www.plyme.com.br
___________________________________





1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq