Aqui, eu tenho então, a referencia de qual produto receberá as fotos.
Eu consigo fazer upload normal. Mas não estou conseguindo duas coisas:
Minhas dificuldades são as seguintes:
1) Gerar miniaturas
2) Gravar os nomes das imagens no banco de dados
Na verdade, gravar até grava, mas não consigo receber no arquivo php o parâmetro que chega via url com a referência do produto.
Se eu substituir na query a referência dele por um numero qualquer, a gravação no mysql funciona.
Alguma orientação?
Arquivo principal fotos.php
<?php
session_start();
header ("Content-Type: text/html; charset=utf-8"); // Precisa ficar aqui senão dá problema com o arquivo de classe conexão
include ("global/sessao_admin.php");
include ("../global/config/conexao.php");
include ("../global/config/constantes.php");
include ("../global/funcoes_php/formata_tel.php");
include ("../global/funcoes_php/formata_moeda.php");
include ("../global/funcoes_php/foto_exibe.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>
<title><?php echo titulo_admin;?></title>
<?php include ("../global/config/campos_meta.php"); ?>
<style type="text/css">
@import "upload/css/multiUpload.css";
</style>
<link rel="stylesheet" type="text/css" href="../global/config/body_admin.css" /></link>
<link rel="stylesheet" type="text/css" href="../global/config/menu_admin.css" /></link>
<script type="text/javascript" src="global/buscahtmlarea.js"></script>
<script type="text/javascript" src="../global/funcoes_js/cria_array_divs.js"></script>
<script type="text/javascript" src="upload/js/swfobject.js"></script>
<script type="text/javascript" src="upload/js/multiUpload.js"></script>
<script type="text/javascript" src="upload/js/chama_classe_uploader.js"></script>
</head>
<body>
<div id="topo"><?php include("global/topo.php"); ?></div>
<div id="base_menu"><img src="img/base_menu.gif" width="100%" height="8" alt="" /></div>
<div id="conteudo"><?php include("fotos_conteudo.php"); ?></div><br /><br />
<div id="base"><?php include("global/base.php"); ?></div>
</body>
</html>
fotos_conteudo.php
<h1 style="text-align:center">Insira novas fotos para este produto</h1>
<h1> <br /></h1>
<div id="uploader"></div>
<div id="uploader_files"></div>
<h1> <br /></h1>
<a href="java script:uploader.startUpload();">Enviar Fotos</a> | <a href="java script:uploader.clearUploadQueue();">Cancelar todas as fotos</a><br />
E o arquivo upload_imagem.php
<?php
include "../config/constantes.php";
include "../config/conexao.php";
$foto = $_FILES['Filedata'];
$nome = $foto['name'];
$tmpname = $foto['tmp_name'];
$extensao = pathinfo($nome, PATHINFO_EXTENSION);
$imagem_nome = md5(uniqid(time())).".". $extensao;
//Diretórios de Gravação das imagens
$caminho_normal = "../../".endereco_normal."/".$imagem_nome;
//$path = "../../".endereco_normal."/".$nome;
move_uploaded_file($tmpname, $caminho_normal);
$id_string = "select id_produtos from produtos where referencia_produtos=".$_POST["parametro"];
$id_query = $mysql->query($id_string);
list($parametro) = $id_query->fetch_row();
$inserir_fotos_string = "
insert into fotos (nome_fotos, id_produtos_fotos)
values ('$imagem_nome',$parametro)
";
$inserir_fotos = $conexao->query($inserir_fotos_string);
?>
Eu até tenho o codigo para gerar as miniaturas que funciona em outro geito de fazer upload. Em varios campos file ou de foto em foto.
Mas aqui não funciona.
if(move_uploaded_file($tmpname, $caminho_normal))
{
//CRIA UMA NOVA IMAGEM
if ($tipo =="image/pjpeg") { $imagem_original = imagecreatefromjpeg($caminho_normal); }
elseif ($tipo =="image/jpeg") { $imagem_original = imagecreatefromjpeg($caminho_normal); }
else if ($tipo =="image/gif") { $imagem_original = imagecreatefromgif($caminho_normal); }
else if ($tipo =="image/png") { $imagem_original = imagecreatefrompng($caminho_normal); }
//Criaçao da miniatura
//LARGURA
$largura_original = ImagesX($imagem_original);
//ALTURA
$altura_original = ImagesY($imagem_original);
//DEFINE OS PARÂMETROS DA MINIATURA
$largura_mini = 150;
$altura_mini = ($altura_original * $largura_mini) / $largura_original;
//CRIA O THUMBNAIL
$imagem_final = imagecreatetruecolor($largura_mini, $altura_mini);
//COPIA A IMAGEM ORIGINAL PARA DENTRO
imagecopyresampled($imagem_final, $imagem_original, 0, 0, 0, 0, $largura_mini+1, $altura_mini+1, $largura_original, $altura_original);
//SALVA A IMAGEM
if ($tipo =="image/pjpeg") { imagejpeg($imagem_final, $caminho_mini ,100); }
elseif ($tipo =="image/jpeg") { imagejpeg($imagem_final, $caminho_mini ,100); }
else if ($tipo =="image/gif") { imagegif($imagem_final, $caminho_mini ,100); }
else if ($tipo =="image/png") { imagepng($imagem_final, $caminho_mini); }
//LIBERA A MEMÓRIA
imagedestroy($imagem_original);
imagedestroy($imagem_final);
}
Descobri aqui no forum o codigo abaixo que me permite pegar o valor da variavel passada pela url em java script, porem, pelo que parece, ela não esta reenviando ela para o arquivo php.
// JavaScript Document
var swords = window.location.href.split("referencia_produtos=");
parametro = swords[1];
var uploader = new multiUpload('uploader', 'uploader_files', {
swf: 'upload/swf/multiUpload.swf', //
script: '../global/funcoes_php/upload_imagem.php?parametro='+parametro,
expressInstall: 'upload/swf/expressInstall.swf',
multi: true,
debug: true,
fileDescription: 'JPEG Images|JPEG, GIF and PNG Images',
fileExtensions: '*.jpg;*.jpeg|*.jpg;*.jpeg;*.gif;*.png'
});
Dando um alert aqui no arquivo js, ele retorna certinho o valor da variavel passada por get. Isso indica que ela esta enviando ao php. Porem, o php não recebe e não há como testar pois a pagina não retorna erros.
O upload esta sendo feito normal. Mas parece que a variavel parametro não esta indo.
No php, estou fazendo assim pra pegar
<?php
include "../config/constantes.php";
include "../config/conexao.php";
$foto = $_FILES['Filedata'];
$nome = $foto['name'];
$tmpname = $foto['tmp_name'];
$extensao = pathinfo($nome, PATHINFO_EXTENSION);
$imagem_nome = md5(uniqid(time())).".". $extensao;
//Diretórios de Gravação das imagens
$caminho_normal = "../../".endereco_normal."/".$imagem_nome;
//$path = "../../".endereco_normal."/".$nome;
move_uploaded_file($tmpname, $caminho_normal);
$id_string = "select id_produtos from produtos where referencia_produtos=".$_POST["parametro"];
$id_query = $mysql->query($id_string);
list($parametro) = $id_query->fetch_row();
$inserir_fotos_string = "
insert into fotos (nome_fotos, id_produtos_fotos)
values ('$imagem_nome',$parametro)
";
$inserir_fotos = $conexao->query($inserir_fotos_string);
?>
Já tentei tambem com get. Mas em um outro js diz que esta sendo enviado via post
Pergunta
Carlos Rocha
Pessoal.
Estou tentando fazer upload de varias fotos no mesmo input e descobri o SWFUpload do Flash com php.
Consegui implementar pela metade.
Preciso fazer o seguinte:
O meu formulário de cadastro de fotos recebe do browser, seu endereço com passagem de um parâmetro:. referencia_produtos.
Aqui, eu tenho então, a referencia de qual produto receberá as fotos. Eu consigo fazer upload normal. Mas não estou conseguindo duas coisas: Minhas dificuldades são as seguintes: 1) Gerar miniaturas 2) Gravar os nomes das imagens no banco de dados Na verdade, gravar até grava, mas não consigo receber no arquivo php o parâmetro que chega via url com a referência do produto. Se eu substituir na query a referência dele por um numero qualquer, a gravação no mysql funciona. Alguma orientação? Arquivo principal fotos.php fotos_conteudo.php E o arquivo upload_imagem.php Eu até tenho o codigo para gerar as miniaturas que funciona em outro geito de fazer upload. Em varios campos file ou de foto em foto. Mas aqui não funciona. Descobri aqui no forum o codigo abaixo que me permite pegar o valor da variavel passada pela url em java script, porem, pelo que parece, ela não esta reenviando ela para o arquivo php. Dando um alert aqui no arquivo js, ele retorna certinho o valor da variavel passada por get. Isso indica que ela esta enviando ao php. Porem, o php não recebe e não há como testar pois a pagina não retorna erros. O upload esta sendo feito normal. Mas parece que a variavel parametro não esta indo. No php, estou fazendo assim pra pegarJá tentei tambem com get. Mas em um outro js diz que esta sendo enviado via post
Onde estou errando?
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.