Jump to content
Fórum Script Brasil
  • 0

Dificuldade de implementar o SWFUploader.


Carlos Rocha
 Share

Question

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 to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.9k
    • Total Posts
      648.8k
×
×
  • Create New...