Carcleo 4 Denunciar post Postado Julho 5, 2012 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: No meu formulário de cadastro de fotos recebe do browser, seu endereço com passagem de um parâmetro. referencia_produtos. http://localhost/php/chinelospuff.com.br/controle/fotos.php?referencia_produtos=c345 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: 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 quanquer a gravação no mysql funciona. Alguma orientação? Meu form: 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="javascript:uploader.startUpload();">Enviar Fotos</a> | <a href="javascript:uploader.clearUploadQueue();">Cancelar todas as fotos</a><br /> E o arquivo upload_imagem.php <?php include "../config/constantes.php"; ?> <?php include "../config/conexao.php"; ?> <?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=".$_GET["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); } Onde estou errando? Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Julho 6, 2012 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 Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Julho 6, 2012 Descobri, com a ajuda do meu colega Alex aqui do fórum, que o erro estava no php. Na chamada a classe conexao que antigamente usava classe para conectar ao mysql e agora uso mysqli e não mysql pra conectar. Então. O erro aqui: $mysql->query(), E o certo era $conexao->query(). Mas, agora, preciso criar as miniaturas e num to conseguindo: Estou usando assim: <?php include "../config/constantes.php"; include "../config/conexao.php"; $foto = $_FILES['Filedata']; $nome = $foto['name']; $tipo = $foto['type']; $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; $caminho_mini = "../../".endereco_mini."/".$imagem_nome; if(move_uploaded_file($tmpname, $caminho_normal)) { $id_string = "select id_produtos from produtos where referencia_produtos='".$_GET["parametro"]."'"; $id_query = $conexao->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); //CRIA UMA NOVA IMAGEM if ($tipo =="image/pjpeg") { $imagem_original = imagecreatefromjpeg($caminho_normal); } else if ($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); } else if ($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); } ?> Onde estará o erro? Compartilhar este post Link para o post Compartilhar em outros sites