Pessoal, na boa, o cara quer saber como gravar Imagem no banco. E se
ele estiver desenvolvendo um aplicativo pra gravar imagens de arquivos
de processos penais? E se o chefe dele acha mais seguro deixar as
imagens no banco? Bom Daniel, então vou dar pra vc um exemplo que uso
aquí e que resolve. vou colar trechos do cód e vc mastiga aí.

primeiro vc precisa usar um FileReference:
private var arquivoUpload:FileReference = new FileReference();

depois vc faz um handler pro seu botão e pros eventos que vc precisa
tratar, se quiser faça um filtro:
private function handleBtnBuscarImagem(evt:MouseEvent):void {
        var filtroExts:FileFilter = new FileFilter(".::SaibWeb::. (" +
                "*.gif, *.jpg, *.jpeg, *.png)",
                "*.gif;*.jpg;*.jpeg;*.png");
        arquivoUpload.addEventListener(Event.SELECT, onUpFileSelected);
        arquivoUpload.addEventListener(Event.CANCEL, onUpCancel);
        arquivoUpload.addEventListener(IOErrorEvent.IO_ERROR, onUpIOError);
        arquivoUpload.addEventListener(SecurityErrorEvent.SECURITY_ERROR,
onUpSecurityError);
        arquivoUpload.browse([filtroExts]);
}

private function onUpFileSelected(evt:Event):void{
        cmpCanvasUpload.alpha = 0.9;
        _cnvImagens.addChild(cmpCanvasUpload);
        if((arquivoUpload.size/1024) <= (10240)){//limite máximo: 10Mb
                try {
                        cmpCanvasUpload.addChild(msgUpload);
                        cmpCanvasUpload.addChild(progressBar);
                        cmpCanvasUpload.addChild(btnCancelUpload);
                        arquivoUpload.addEventListener(ProgressEvent.PROGRESS,
onUpProgress);
                        arquivoUpload.addEventListener(Event.COMPLETE, 
onUpComplete);
                        var params:URLVariables = new URLVariables();
                        params.appOrigem = "FrmCadProdutos";
                        params.idEmpresaPvda = idEmpresaPvda;
                        params.flgImgDefault = "N";
                        params.idProduto = objeto.Codigo;
                        var request:URLRequest = new URLRequest();
                        request.url = FILE_UPLOAD_URL;
                        request.method = URLRequestMethod.POST;
                        request.data = params;
                        arquivoUpload.upload(request);
                } catch (err:Error) {
                        msgUpload.text = "ERRO: zero-byte file";
                        cmpCanvasUpload.addChild(msgUpload);
                }
        }
        else{
                arquivoUpload.cancel();
                btnCancelUpload.enabled = false;
                _cnvImagens.removeChild(cmpCanvasUpload);
                Funcoes.mensagem("O arquivo selecionado excede o tamanho máximo
permitido de 10Mb.", "E", null);
        }
}

e pra facilitar minha vida, vou só colocar trechos e vc vê aí.

                private function onUpProgress(evt:ProgressEvent):void{
                        var nf:NumberFormatter = new NumberFormatter();
                        nf.rounding = "up";
                        nf.precision = 0;
                        nf.useThousandsSeparator = false;
                        msgUpload.text = "Carregando 
"+nf.format(evt.bytesLoaded/1024)+" de
"+nf.format(evt.bytesTotal/1024)+" Kb.";
                        progressBar.setProgress(evt.bytesLoaded, 
evt.bytesTotal);
                }

                private function onUpCancel(evt:Event):void{
                        arquivoUpload.cancel();
                        msgUpload.text = "Upload cancelado pelo usuário.";
                        progressBar.label = "Cancelado";
                        btnCancelUpload.enabled = false;
                        var timer:Timer = new Timer(1000);
                        timer.addEventListener(TimerEvent.TIMER,
function(e:TimerEvent):void{
                                try{
                                        
_cnvImagens.removeChild(cmpCanvasUpload);
                                }
                                catch(e:Error){}
                                timer.stop();
                        });
                        timer.start();
                }

                private function onUpComplete(evt:Event):void{
                        var nf:NumberFormatter = new NumberFormatter();
                        nf.rounding = "up";
                        nf.precision = 0;
                        nf.useThousandsSeparator = false;
                        msgUpload.text = "Upload concluído em um total de
"+nf.format(arquivoUpload.size/1024)+"Kb.";
                        progressBar.label = "Concluído";
                        btnCancelUpload.enabled = false;
                        var timer:Timer = new Timer(3500);
                        timer.addEventListener(TimerEvent.TIMER,
function(e:TimerEvent):void{
                                try{
                                        
_cnvImagens.removeChild(cmpCanvasUpload);
                                }
                                catch(e:Error){}
                                timer.stop();
                        });
                        timer.start();
                        getProdutoImagens();
                }

                private function onUpIOError(evt:IOErrorEvent):void{
                        Funcoes.mensagem("IOError ~= line 
1226\n"+evt.toString(), "E",
null);
                        _cnvImagens.removeChild(cmpCanvasUpload);
                        cmpCanvasUpload.removeChild(msgUpload);
                        cmpCanvasUpload.removeChild(progressBar);
                }

                private function onUpSecurityError(evt:SecurityErrorEvent):void{
                        Funcoes.mensagem("SecurityError ~= line 
1233\n"+evt.text, "E",
null);
                        _cnvImagens.removeChild(cmpCanvasUpload);
                        cmpCanvasUpload.removeChild(msgUpload);
                        cmpCanvasUpload.removeChild(progressBar);
                }


a sua url no servidor
private const FILE_UPLOAD_URL:String = "http://seu_ip:sua_porta/
uploadDocumentos.ashx";

enfim tudo isso provavelmente vc já sabe. agora, o tratamento no
servidor, obviamente, depende sa sua linguagem aí. aquí utilizo C#
dessa forma:
        public void UploadImagemProdutos(HttpContext context)
        {
            OracleCommand comandosql = new OracleCommand();

            //recupera os dados do post
            string idEmpresaPvda =
context.Request.Form["idEmpresaPvda"].ToString();
            string idProduto =
context.Request.Form["idProduto"].ToString();
            HttpPostedFile imagem = context.Request.Files["Filedata"];

            //configura o diretório de upload temporário
            string uploadDir = HttpContext.Current.Server.MapPath("~/
upload/temp/" + idEmpresaPvda);

            //cria o titetório temporário, caso não exista
            try { System.IO.Directory.CreateDirectory(uploadDir); }
            catch (Exception) { throw; }

            //grava na pasta temporária
            try { imagem.SaveAs(Path.Combine(uploadDir,
imagem.FileName)); }
            catch (Exception) { throw; }

            //redimensiona a imagem se necessário
            //(substituindo a imagem criada acima. tamanho padronizado
no parâmetro da função)
            try { redimensionarImagem(Path.Combine(uploadDir,
imagem.FileName), Path.Combine(uploadDir, imagem.FileName)); }
            catch (Exception) { throw; }

            using (comandosql.Connection = ConexaoBD.ObterConexao())
            {
                try
                {
                    FileStream fsImagem = new FileStream(uploadDir +
"/" + imagem.FileName, FileMode.Open, FileAccess.Read);
                    byte[] blob = new byte[fsImagem.Length];
                    fsImagem.Read(blob, 0,
System.Convert.ToInt32(fsImagem.Length));
                    fsImagem.Close();
                    comandosql.CommandText = "INSERT INTO
PVDA.PRODUTO_IMAGENS(PROIMG_PROD_EMP_ID " +
 
",PROIMG_PROD_ID " +
 
",PROIMG_IMAGEM) " +
 
"VALUES (" + idEmpresaPvda +
 
"," + idProduto +
 
", :BlobImagem)";
                    OracleParameter blobParameter = new
OracleParameter();
                    blobParameter.OracleDbType = OracleDbType.Blob;
                    blobParameter.ParameterName = "BlobImagem";
                    blobParameter.Value = blob;
                    comandosql.Parameters.Add(blobParameter);
                    comandosql.CommandType = CommandType.Text;
                    comandosql.ExecuteNonQuery();
                    File.Delete(Path.Combine(uploadDir,
imagem.FileName));// deleta o arquivo temporário
                }
                catch (Exception)
                {
                    throw;
                }
            }
        }

        public static void redimensionarImagem(string srcPath, string
destPath, double nWidth = 235, double nHeight = 145){
            string temp;
            // abre arquivo original
            System.Drawing.Image img =
System.Drawing.Image.FromFile(srcPath);
            int oWidth = img.Width; // largura original
            int oHeight = img.Height; // altura original
            double ratio;

            //calcula a proporcionalidade da imagem
            if(oWidth > oHeight){
                ratio = nWidth / oWidth;
                nHeight = oHeight * ratio;
            } else {
                ratio = nHeight / oHeight;
                nWidth = oWidth * ratio;
            }

            // redimensiona se necessario
            if(oWidth > nWidth || oHeight > nHeight){
                if(oWidth > oHeight){ nHeight = (oHeight * nWidth) /
oWidth; }
                else{ nWidth = (oWidth * nHeight) / oHeight; }
            }
            else return;

            // substitui a imagem no servidor pela imagem
redimensionada...
            System.Drawing.Image imgThumb =
img.GetThumbnailImage(Convert.ToInt32(nWidth),
Convert.ToInt32(nHeight), null, new System.IntPtr(0));
            if(srcPath == destPath){
                temp = destPath + ".tmp";
                imgThumb.Save(temp, ImageFormat.Jpeg);
                img.Dispose();
                imgThumb.Dispose();
                File.Delete(srcPath); // deleta arquivo original
                File.Copy(temp, srcPath); // copia a nova imagem
                File.Delete(temp); // deleta temporário
            }
            else{
                imgThumb.Save(destPath, ImageFormat.Jpeg); // salva
nova imagem no destino
                imgThumb.Dispose(); // libera memoria
                img.Dispose(); // libera memória
            }
        }

como vê, o campo no banco é um blob. não repara na falta de
explicação, é que tenho que correr. o código está bem comentado.

-- 
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para 
[email protected]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev

Responder a