Ir para conteúdo

POWERED BY:

Arquivado

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

KayanSampaio

[Resolvido] Upload de imagem com problemas

Recommended Posts

galera, boa tarte!

fuz um cadastro de produtos com foto, e ta cadastrando beleza... porem a imagem ta indo com problemas. ela ta indo sem extenção nenhuma, tipo assim "imagem" e daveria ficar assim "imagem.jpg" ate no banco de dados o caminho ta assim "/admin/imagens/imagem" onde ela deveria ficar assim "/admin/imagens/imagem.jpg"

 

ta aki meu codigo: http://pastebin.com/zcniRhX5

Campo no banco: Imagem Varchar(255) Latin1_general_ci

 

se puderem me ajudar, agradeço

Compartilhar este post


Link para o post
Compartilhar em outros sites


function getExt( $file )

{

$fim = explode( '.', $file );

return strtolower( '.'.end( $fim ) );

}

 

 

$descricaocurta = $_POST['descricaocurta'];

$descricaocompleta = $_POST['descricaocompleta'];

$imagem = $_FILES['imagem']['name'];

$tmpimagem = $_FILES['imagem']['tmp_name'];

 

$nome = $_POST['nome'].getExt( $imagem );

$destino = "../admin/imagens/produtos/".$nome;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troque:

$destino = "../admin/imagens/produtos/".$nome;
Por:

$destino = '../admin/imagens/produtos/'.$imagem;
Ou por:

$destino = '../admin/imagens/produtos/'.$nome.'.jpg';

Depende do que você precisa como nome da imagem.

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

fez oque eu sugeri?

$nome = $_POST['nome'].getExt( $imagem );
$destino = "../admin/imagens/produtos/".$nome;

sendo que getExt() é a função que declarei no inicio.

Mostre como você tentou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

poste como está o teu código completo agora.

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php require_once('../Connections/conexao_superjet.php'); ?>
<?php
// Definaindo as Variaveis
$categoria = $_POST['categoria'];
function getExt( $file ){  
$fim = explode( '.', $file );
return strtolower( '.'.end( $fim ) );
}
$descricaocurta = $_POST['descricaocurta'];
$descricaocompleta = $_POST['descricaocompleta'];
$imagem = $_FILES['imagem']['name'];
$tmpimagem = $_FILES['imagem']['tmp_name'];
$nome = $_POST['nome'].getExt ($imagem);
$destino = "../admin/imagens/produtos/".$nome;
$preco = $_POST['preco'];
$comodato = $_POST['comodato'];
$aluguel = $_POST['aluguel'];

//Cadastrando os produtos no banco
mysql_select_db ("superjet");
move_uploaded_file($tmpimagem, $destino);
$sql = mysql_query("INSERT INTO produtos (Categoria, Nome, Descricaocurta, Descricaocompleta, Imagem, Preco, Comodato, Aluguel) VALUES('$categoria', '$nome', '$descricaocurta', '$descricaocompleta', '$destino', '$preco', '$comodato', '$aluguel')");
	header ("Location: add_produtos.php");


?>

 

nun foi isso ki pediu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

eauehaueaheuha, não!

 

Ou você faz a alteração do William, ou a minha. Se alterar as duas ao mesmo tempo, vai dar erro.

 

EDIT: tinha visto de relance.. deveria estar funcionando sim.

Mas tente alterando somente a linha que te passei, para vermos o resultado.

 

Até.

Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz oq H4X0R pediu... subtitui $nome por $imagem.. mas quando vou abrir a imagem o windows me retorna

"O visualizador nao pode abrir a foto porque voce nao tem permiçao para acessar o local do arquivo"

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php
require_once('../Connections/conexao_superjet.php');
$categoria = $_POST['categoria'];
$nome = $_POST['nome'];
$descricaocurta = $_POST['descricaocurta'];
$descricaocompleta = $_POST['descricaocompleta'];
$imagem = $_FILES['imagem']['name'];
$tmpimagem = $_FILES['imagem']['tmp_name'];
$destino = '../admin/imagens/produtos/'.$imagem;
$preco = $_POST['preco'];
$comodato = $_POST['comodato'];
$aluguel = $_POST['aluguel'];

//Cadastrando os produtos no banco
mysql_select_db ("superjet");
move_uploaded_file($tmpimagem, $destino);
$sql = mysql_query("INSERT INTO `produtos` (`Categoria`, `Nome`, `Descricaocurta`, `Descricaocompleta`, `Imagem`, `Preco`, `Comodato`, `Aluguel`) VALUES('$categoria', '$nome', '$descricaocurta', '$descricaocompleta', '$destino', '$preco', '$comodato', '$aluguel')");
header ('Location: add_produtos.php');
?>

 

Deixe exatamente assim, teste, e poste o resultado.

 

Até.

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara.. está funcionando corretamente:

 

<?php

	function getExt( $file ){
		$fim = explode( '.', $file );
		return strtolower( '.'.end( $fim ) );
	}
	if( $_SERVER['REQUEST_METHOD']=='POST' )
	{

		$imagem = $_FILES['imagem']['name'];
		$tmpimagem = $_FILES['imagem']['tmp_name'];
		$nome = $_POST['nome'].getExt ($imagem);
		$destino = ''.$nome;



		move_uploaded_file($tmpimagem, $destino);
		echo "INSERT INTO produtos (Categoria, Nome, Descricaocurta, Descricaocompleta, Imagem, Preco, Comodato, Aluguel) 
			VALUES('$categoria', '$nome', '$descricaocurta', '$descricaocompleta', '$destino', '$preco', '$comodato', '$aluguel')";
	}
?>
<form action="" method="post" enctype="multipart/form-data">
	<input type="text" name="nome" value="Teste" />
	<input type="file" name="imagem" />
	<input type="submit" name="ok" value="ok" />
</form>

saída:

INSERT INTO produtos (Categoria, Nome, Descricaocurta, Descricaocompleta, Imagem, Preco, Comodato, Aluguel) VALUES('', 'Teste.gif', '', '', 'Teste.gif', '', '', '')

e a imagem chegou na minha pasta com o nome Teste.jpg/Teste.gif (a troca de extensão está correta)

 

não sei oque você está fazendo de errado ai, mas o código está correto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

amigos.. descobri akii

o jeito ki fiz ta certo.. o erro e na permiçao da pasta.. pq joguei no servidor e deu um erro la.. ai dei permiçao 777 e deu certo

so aki no meu pc a pasta ta como somente leitura.. e eu n to acertando tirar.. masno servidor ta beleza,

 

valeu aii por ter ajudado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por essas e outras devemos habilitar aviso de erros em ambientes de produção.

Cheguei a pensar em chmod, mas não falei pois não havia aparecido nenhum erro, e você dizia que o arquivo era enviado, porém sem extensão.

 

De qualquer modo, bom que tenha resolvido o problema.

 

;)

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.