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<?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 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
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.