Ir para conteúdo

POWERED BY:

Arquivado

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

Cristiano Franco

Enviar POST com texto e imagens e o adobe flex, ou outra alternativa..

Recommended Posts

Olá, bem, vou tentar ser bem objetivo.

 

Tenho um site em que exibo alguns produtos.

 

Preciso criar uma ferramenta para que os próprios anunciantes enviem suas imagens e preencham um formulário com as características do produto.

 

Um exemplo de como enviar imagens pelo flash eu já consegui...

 

Tentei extender o fla, coloquei um formulário acima do campo onde se escolhe as imagens...

 

Mas não sei como enviar agora os dois ao mesmo tempo (o texto do form e as imagens escolhidas)

 

Tentei criar um load separado para o post e deixar o das imagens intocado.

 

Esse fla envia as imagens (e o texto do formulário) via post para uma página ASHX (asp.net).

 

Essa página lê as imagens e as coloca numa pasta na web. Lê tb os dados do texto e escreve um .txt na mesma pasta das imagens.

 

O q acontece é q as imagens sempre são enviadas, mas o texto hora é enviado, hora não.

 

Eu queria saber de um método que encapsule tudo isto pra q seja enviado tudo de uma só vez... pra q não dê erro de hora enviar um e outro não.

 

Gostaria de um exemplo.

 

Se não der pra fazer isto com AS3, gostaria de saber mais sobre o FLEX. O que é o FLEX? é um framework especial da adobe? posso construir páginas com ele? Precisa de um componente especial que os usuários do meu site terão que baixar? Ou no final das contas é tudo flash mesmo com AS3?

 

Se não der pra fazer isto com essas ferramentas, alguém sabe me dizer se com java dá?

 

O objetivo, como disse antes, é permitir que os clientes (anunciantes do site) preencham seu próprio formulário de ofertas. Este formulário é composto por um formulário e por um botão que carrega até 3 imagens... esta página deverá enviar tudo isto para uma página ASHX (asp.net) de uma só vez.

 

Obs.: Zipar o conteúdo do formulário antes de enviar era uma boa, assim envio tudo num único POST. Dá pra fazer isto? Como?

 

Vlw gente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Cristiano! Bom você já está no caminho certo em escolher .net.... hahahha brincadeira ;), mas de fto será melhor de se debugar ;)

 

Sim é possivel enviar texto e foto pro .net de uma vez só sem ser por esta nojera de GET e POST!

 

O que você irá fazer é: um objeto ou uma array e encapsular o texto e a imagem dentro dela e enviar via AMF para o .net, ou seja você irá enviar uma array para um método no .net, e lá você vai salvar a string no bnco de dados e a imagem num diretório, e ainda pode renomear-la, editar tamanho etc.. :).

Te recomendo o FluorineFX, que é o melhor sisteminha de amf do ramo pra .NET, além de ser bom é open source!

 

Basicamente você fará assim:

 

Flash:

//importe o jpgconcoder primeiramente do as3corelib

var objJPGEncoder:JPGEncoder = new JPGEncoder(QUALIDADE);

var dadosEncode:ByteArray = objJPGEncoder.encode(SEU_BMP);

var dados:Object = {txt:myString, img:dadosEncode};

 

_objService = new NetConnection();

_objResponder = new Responder(onResultEvent, onStatusEvent);

_objService.connect(""http://seudominio.com/flashservices.gsteway.aspx);

_objService.call("MyClass.MyMethodToSaveImage", _objResponder, dados);

 

[... eventos onresult, on status...]

 

.net:

 

using System;

using System.Web;

using System.Drawing;

using System.IO;

using FluorineFx;

using FluorineFx.AMF3;

 

namespace ServiceLibrary.Imagem

{

[RemotingService("Comentário da classe")]

public class JpegEncoder

{

public void Salvar(Hashtable flashData)

{

ByteArray byteArray = flashdata['img'];

String meyTexto = flashdata['txt']; // faça algo com isso depois

 

// Transfere de ByteArray para MemoryStream

uint length = byteArray.Length;

byte[] bytes = new byte[length];

byteArray.ReadBytes(bytes, 0, length);

MemoryStream stream = new MemoryStream(bytes);

 

// Cria a imagem

Image image = Bitmap.FromStream(stream);

 

// Salva a imagem

image.Save(

HttpContext.Current.Server.MapPath("_upload/flash.jpg"));

 

// Libera o espaço na memória

stream.Dispose();

image.Dispose();

}

}

}

 

 

Pronto! esta breve exlicaçao foi baseada no tutorial de Bruno Soares: http://blog.bsoares.com.br/remoting/jpeg-encoder-as3-fluorinefx-net-flash-remoting-gateway, e eu adaptei a parte do texto a enviar junto com a imagem ;)

 

Sobre AS3corelib escrevi um pequeno post descritivo: http://irineuantunes.com/blog/?p=105

 

E sobre o Flash e Flex, digamos que alguns componentes (grid, alert, tree view...) que são componentes meio que "windows forms", usamos no Flex atravez do mxml e infelizmente não existem no flash, teriamos que fazer cada um manualmente e seriam bem especificos para cada caso. E de cara o flex ainda possui a biblioteca do Flash + uma adicional do flex (mx core e mais outras).

 

A questão é: se seu site tem que ter cada de site você usa Flash, caso tenha mais cada de um software online use o Flex ;)

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.