Ir para conteúdo

POWERED BY:

Arquivado

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

VALDERNETO

[Resolvido] Upload de imagem com php

Recommended Posts

Alguem pode me dar uma dica de como resolver o problema abaixo

a imagem não esta sendo enviada pelo formulario para pasta "fotos"

 

 

<?php
$enviar_arquivo = $_POST['enviar_arquivo'];
if ($_GET['funcao'] == "gravar" && $enviar_arquivo == "sim" && is_file($_FILES['arquivo'] ['tmp_name'])){
$foto = $_FILES['arquivo'] ['name'];



$foto = str_replace(" ", "_", $foto);
$foto = str_replace("ã", "a", $foto);
$foto = str_replace("á", "a", $foto);
$foto = str_replace("à", "a", $foto);
$foto = str_replace("â", "a", $foto);
$foto = str_replace("ê", "e", $foto);
$foto = str_replace("é", "e", $foto);
$foto = str_replace("è", "e", $foto);
$foto = str_replace("î", "i", $foto);
$foto = str_replace("í", "i", $foto);
$foto = str_replace("ì", "i", $foto);
$foto = str_replace("ô", "o", $foto);
$foto = str_replace("õ", "o", $foto);
$foto = str_replace("ó", "o", $foto);
$foto = str_replace("ò", "o", $foto);
$foto = str_replace("û", "u", $foto);
$foto = str_replace("ú", "u", $foto);
$foto = str_replace("ù", "u", $foto);

$foto = strtolower($foto);

if( !preg_match( '/^image\/(jpeg|png|gif|jpg)+$/', $_FILES[ 'arquivo' ] [ 'type' ] ) ){

echo "
<META HTTP-EQUIV=REFRESH CONTENT='0; URL=cadastrar_fotos.php'>
<script type=\"text/javascript\">
alert(\"Formato inválido\");
</script>
";
}else{

if(file_exists ("fotos/$foto")){
$a = 1;
while(file_exists("fotos/[$a]$foto")){
     $a++;
}
$foto = "[".$a."]".$foto;
}

if(!move_uploaded_file($_FILES['arquivo']['tmp_name'], "fotos/".$foto)){

	echo "
<META HTTP-EQUIV=REFRESH CONTENT='0; URL=cadastrar_fotos.php'>
<script type=\"text/javascript\">
alert(\"Erro ao enviar o arquivo.\");
</script>
";
}
}

include "config.php";
$sql = mysql_query("INSERT INTO upload (fotos) value ('$foto')");
header("Location: cadastrar_fotos.php");

}else{
header("Location: cadastrar_fotos.php");
}


?>

 

 

creio eu que o erro pode estar nesse codigo eu acho não manjo muito de php

 

if(!move_uploaded_file($_FILES['arquivo']['tmp_name'], "fotos/".$foto)){

 

Alguem pode dar uma dica!!!!

 

Att

 

Valder Neto

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alguem pode me dar uma dica de como resolver o problema abaixo

a imagem não esta sendo enviada pelo formulario para pasta "fotos"

 

 

<?php
$enviar_arquivo = $_POST['enviar_arquivo'];
if ($_GET['funcao'] == "gravar" && $enviar_arquivo == "sim" && is_file($_FILES['arquivo'] ['tmp_name'])){
$foto = $_FILES['arquivo'] ['name'];



$foto = str_replace(" ", "_", $foto);
$foto = str_replace("ã", "a", $foto);
$foto = str_replace("á", "a", $foto);
$foto = str_replace("à", "a", $foto);
$foto = str_replace("â", "a", $foto);
$foto = str_replace("ê", "e", $foto);
$foto = str_replace("é", "e", $foto);
$foto = str_replace("è", "e", $foto);
$foto = str_replace("î", "i", $foto);
$foto = str_replace("í", "i", $foto);
$foto = str_replace("ì", "i", $foto);
$foto = str_replace("ô", "o", $foto);
$foto = str_replace("õ", "o", $foto);
$foto = str_replace("ó", "o", $foto);
$foto = str_replace("ò", "o", $foto);
$foto = str_replace("û", "u", $foto);
$foto = str_replace("ú", "u", $foto);
$foto = str_replace("ù", "u", $foto);

$foto = strtolower($foto);

if( !preg_match( '/^image\/(jpeg|png|gif|jpg)+$/', $_FILES[ 'arquivo' ] [ 'type' ] ) ){

echo "
<META HTTP-EQUIV=REFRESH CONTENT='0; URL=cadastrar_fotos.php'>
<script type=\"text/javascript\">
alert(\"Formato inválido\");
</script>
";
}else{

if(file_exists ("fotos/$foto")){
$a = 1;
while(file_exists("fotos/[$a]$foto")){
     $a++;
}
$foto = "[".$a."]".$foto;
}

if(!move_uploaded_file($_FILES['arquivo']['tmp_name'], "fotos/".$foto)){

	echo "
<META HTTP-EQUIV=REFRESH CONTENT='0; URL=cadastrar_fotos.php'>
<script type=\"text/javascript\">
alert(\"Erro ao enviar o arquivo.\");
</script>
";
}
}

include "config.php";
$sql = mysql_query("INSERT INTO upload (fotos) value ('$foto')");
header("Location: cadastrar_fotos.php");

}else{
header("Location: cadastrar_fotos.php");
}


?>

 

 

creio eu que o erro pode estar nesse codigo eu acho não manjo muito de php

 

if(!move_uploaded_file($_FILES['arquivo']['tmp_name'], "fotos/".$foto)){

 

Alguem pode dar uma dica!!!!

 

Att

 

Valder Neto

cara.la no code.imasters eu coloquei um codigo de upload bem completinho. da uma olhada..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Felipe

 

Na minha pasta de upload tem:

uma pasta de fotos

e os arquivos abaixo:

 

cadastrar_fotos.php (onde ta o formulario)

Config.php (a conexão com banco de dados)

funcao.php (para fazer o upload de imagem)

 

Eu não manjo muito em php eu consegui fazer a adptação com seu codigo

 

você poderia dar uma dica

 

eu não conseguir quer dizer!

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente assim

 

<?php
	$dir = "caminho/"; 
	if ($_GET['funcao'] == "gravar" && $enviar_arquivo == "sim"){

       $foto = isset($_FILES["arquivo"]) ? $_FILES["arquivo"] : false;

	if( !empty($foto['name']) )
		{
				$foto = strtolower( $foto['name'] );
				$foto = str_replace(
						array(" ", "'",";","\"","-","#","*","=","ã","á","à","é","ê","è","í","ì","ó","õ",'ô',"ç"), 
						array("_", "_","_","_","_","_","_","_","a","a","a","e","e","e","i","i","o","o",'o',"c"), 
						$foto);

				if( !preg_match( '/^image\/(jpeg|gif|pjpeg|jpg|png)$/', $foto['type']) )
				{
							 echo "<script type='text/javascript'>
									alert('Formato inválido.');
									</script>";
				}
				else
				{
						if( file_exists( $dir.$foto) )
						{
								$a = 1;
								while(file_exists( $dir."[{$a}]{$foto}") )
										$a++;
								$foto = "[{$a}]{$foto}";
						}
						if( !@move_uploaded_file($fotos['tmp_name'], $dir.$foto) )
						{
								$erros[] = $foto['name'];
								 echo " <script type='text/javascript'>
										alert('Erro ao enviar foto.');
										</script>";
						}
						else {																			
								$sql = "INSERT INTO upload (fotos) value ('$foto')";				
								$exec = mysql_query($sql) or die( mysql_error() );
								header("Location: cadastrar_fotos.php");
				              }					
		        }			

           }
	}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não deu certo tambem colocar o caminho inteiro do diretorio

Alguem tem mas alguma dica

 

Diego ta dando esse erro:

 

Notice: Undefined variable: enviar_arquivo in C:\wamp\www\DEVACOSMETICOS\upload\funcao.php on line 3

Compartilhar este post


Link para o post
Compartilhar em outros sites

Diego estou postando o codigo do formulario

 

<!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>Upload de imagem</title>
<style type="text/css">
#form1 h2 {
font-family: Arial, Helvetica, sans-serif;
font-size: 18px;
color: #333;
}
#form1 p {
font-family: Arial, Helvetica, sans-serif;
font-size: 14px;
font-weight: bold;
}
</style>
</head>

<body>
<form id="form1" name="form1" method="post" action="funcao.php?funcao=gravar" enctype="multipart/form-data">
 <h1>Cadastrar Foto</h1>
 <p>
 <label>
   <input type="radio" name="enviar_arquivo" onclick="document.form1.arquivo.disabled=false" id="enviar_arquivo" value="sim" />
   </label>
   <strong>SIM</strong>      
   <label>
   <input type="radio" name="enviar_arquivo" onclick="document.form1.arquivo.disabled=true" id="enviar_arquivo" value="nao" checked="checked" />
 </label>
 <strong>NÃO</strong></p>
 <label>
<input name="arquivo" type="file" id="arquivo" size="50" disabled="disabled" />
   </label>
   <p>
   <input type="submit" name="button" id="button" value="Enviar" />
 </p>
</form>
</body>
</html>

 

o formulario esta salvo com o nome cadastrar_fotos.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu coloquei agora quando eu clico em enviar mesmo com uma imagem em jpeg esta aparecendo a caixinha com texto "formato invalido"

 

e não envia a emagem

Compartilhar este post


Link para o post
Compartilhar em outros sites

amigo, testei o código e está funcionando.

 

cadastrar_fotos.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>Upload de imagem</title>
<style type="text/css">
#form1 h2 {
font-family: Arial, Helvetica, sans-serif;
font-size: 18px;
color: #333;
}
#form1 p {
font-family: Arial, Helvetica, sans-serif;
font-size: 14px;
font-weight: bold;
}
</style>
</head>

<body>
<form id="form1" name="form1" method="post" action="funcao.php?funcao=gravar" enctype="multipart/form-data">
 <h1>Cadastrar Foto</h1>
 <p>
 <label>
   <input type="radio" name="enviar_arquivo" onclick="document.form1.foto.disabled=false" id="enviar_arquivo" value="sim" />
   </label>
   <strong>SIM</strong>      
   <label>
   <input type="radio" name="enviar_arquivo" onclick="document.form1.foto.disabled=true" id="enviar_arquivo" value="nao" checked="checked" />
 </label>
 <strong>NÃO</strong></p>
 <label>
<input name="foto" type="file" id="foto" size="50" disabled="disabled" />
   </label>
   <p>
   <input type="submit" name="button" id="button" value="Enviar" />
 </p>
</form>
</body>
</html>

 

funcao.php

<?php

// aqui você adiciona o arquivo de conexao com o banco


	$dir = "fotos/"; 
	$enviar_arquivo = $_POST['enviar_arquivo'];
	if ($_GET['funcao'] == "gravar" && $enviar_arquivo == "sim"){

	$fotos = isset($_FILES["foto"]) ? $_FILES["foto"] : false;	

       if( !empty($fotos['name']) )
		{
				$foto = strtolower( $fotos['name'] );
				$foto = str_replace(
						array(" ", "'",";","\"","-","#","*","=","ã","á","à","é","ê","è","í","ì","ó","õ",'ô',"ç"), 
						array("_", "_","_","_","_","_","_","_","a","a","a","e","e","e","i","i","o","o",'o',"c"), 
						$foto);

				if( !preg_match( '/^image\/(jpeg|gif|pjpeg|jpg|png)$/', $fotos['type']) )
				{
							 echo "<script type='text/javascript'>
									alert('Formato inválido.');
									</script>";
				}
				else
				{
						if( file_exists( $dir.$foto) )
						{
								$a = 1;
								while(file_exists( $dir."[{$a}]{$foto}") )
										$a++;
								$foto = "[{$a}]{$foto}";
						}
						if( !@move_uploaded_file($fotos['tmp_name'], $dir.$foto) )
						{
								$erros[] = $fotos['name'];
								 echo " <script type='text/javascript'>
										alert('Erro ao enviar foto.');
										</script>";
						}
                                                       else {                                                                                                                                                  
                                                                       $sql = "INSERT INTO upload (fotos) value ('$foto')";                            
                                                                       $exec = mysql_query($sql) or die( mysql_error() );
                                                                       header("Location: cadastrar_fotos.php");
                                                     }                                 
                               }                       

           }
       }
?>

 

não esqueça de criar a pasta "fotos"

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza Diego agora sim deu certo

Puts ja tava a 2 dias quebrando a cabeça

brigadão mesmo Diego

 

Att

 

Valder Neto

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.