Ir para conteúdo
Fórum Script Brasil
  • 0

Dificuldade de implementar o SWFUploader.


Carlos Rocha

Pergunta

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.

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: 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>&nbsp;<br /></h1>

  <div id="uploader"></div>
  <div id="uploader_files"></div>

  <h1>&nbsp;<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

Onde estou errando?

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...