Ir para conteúdo

Arquivado

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

Carcleo

Dificuldade na implementação do SWFUpload

Recommended Posts

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.