Desenvolvimento - ActionScript

Upload de arquivos em Flash (parte 2)

Veremos nesta segunda parte do tutorial como enviar a imagem do Flash para o PHP e este mesmo PHP gravar os dados no MySQL.

por Rafael Costa



Resumo:

Veremos nesta segunda parte do tutorial como enviar a imagem do Flash para o PHP e este mesmo PHP gravar os dados no MySQL.


Tutorial:

Antes de começarmos, se você não leu a primeira parte, acesse
este link.
Agora vamos ao que interessa.
Vimos na primeira parte do tutorial, que para enviarmos a imagem para o php, usaríamos o seguinte comando:


fileRef.upload("upload.php?nomeArtista="+nomeArtista+"&idade="+idade+"&cidade="+cidade);

Agora precisamos fazer com que a página upload.php receba a imagem e leia por GET, o nome do artista, a idade e a cidade.
A lógica do script é a seguinte:
- Primeiro escolha um diretório e crie-o.
- Gere um nome único para a imagem.
- Envie a imagem para a pasta
- Grave no MySQL os dados

Vamos ao código:

Primeiro abra o seu PHP e crie as seguintes variáveis:

<?php

// Diretório para onde irão as imagens - Não se esqueça de criar esta pasta no diretório do upload.php
$dir = "imagens/";

// Recebendo o arquivo do Flash
$file = $_FILES["Filedata"];

// Pega a extensão do arquivo enviado pelo Flash
preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $file["name"], $ext);

Pois bem. Após feito isso, precisamos gerar o nome único para a imagem. O código seguinte fará isto:

// Gera o nome único para a imagem
$imagem_nome = md5(uniqid(time())) . "." . $ext[1];

Vamos agora, criar mais uma variável, com a pasta e o nome e enviar o arquivo para esta pasta com o nome gerado acima.

$imagem_dir = $dir . $imagem_nome;

O script abaixo enviará o arquivo para a pasta e mudará a permissão da pasta, caso ela ainda não tenha.

// Envia o arquivo para a pasta de destino
move_uploaded_file($file["tmp_name"], $imagem_dir);

// Muda o CHMOD da pasta
chmod($dir, 0777);

Você poderá ver que com este script, o arquivo já estará na pasta. Mas como precisamos destes dados no mysql, vamos capturar as variáveis de nome, cidade e idade e enviá-las ao banco de dados.

// Conectar ao servidor e selecionar um banco de dados
$conexao = mysql_connect("servidor","usuario","senha") or die ("Configuracao de Banco de Dados Errada!");
mysql_select_db("banco_de_dados",$conexao);

// Capturar as variáves por GET
$nome = $_GET["nomeArtista"];
$idade = $_GET["idade"];
$cidade = $_GET["cidade"];

// Envia as variáveis e a imagem para o MySQL
$sql_insert = "INSERT INTO tabela (nome, idade, cidade, imagem) VALUES ("$nome", "$idade", "$cidade", "$imagem_dir");"
$sql_query = mysql_query($sql_insert) or die (mysql_error());


Abaixo nosso código completo:

<?php

// Diretório para onde irão as imagens - Não se esqueça de criar esta pasta no diretório do upload.php
$dir = "imagens/";

// Recebendo o arquivo do Flash
$file = $_FILES["Filedata"];

// Pega a extensão do arquivo enviado pelo Flash e grava na variável "$ext"
preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $file["name"], $ext);

// Gera o nome único para a imagem

$imagem_nome = md5(uniqid(time())) . "." . $ext[1];

$imagem_dir = $dir . $imagem_nome;

// Envia o arquivo para a pasta de destino

move_uploaded_file($file["tmp_name"], $imagem_dir);

// Muda o CHMOD da pasta
chmod($dir, 0777);

// Conectar ao servidor e selecionar um banco de dados

$conexao = mysql_connect("servidor","usuario","senha") or die ("Configuracao de Banco de Dados Errada!");
mysql_select_db("banco_de_dados",$conexao);

// Capturar as variáves por GET
$nome = $_GET["nomeArtista"];
$idade = $_GET["idade"];
$cidade = $_GET["cidade"];

// Envia as variáveis e a imagem para o MySQL
$sql_insert = "INSERT INTO tabela (nome, idade, cidade, imagem) VALUES ("$nome", "$idade", "$cidade", "$imagem_dir");"
$sql_query = mysql_query($sql_insert) or die (mysql_error());

?>

Espero que tenham gostado deste tutorial e desculpe pela demora =D
Abraços a todos.

Rafael Costa

Rafael Costa - Programador Actionscript há 2 anos. Participante do fórum FlashMasters, maior comunidade Flash do Brasil.
Além de Actionscript, possui conhecimentos em outras linguagens como: JavaScript, CSS, XHTML, PHP e MySQL.
Para saber mais sobre o autor, visite seu site:
http://www.rafaelcosta.com.