Ir para conteúdo

POWERED BY:

Arquivado

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

renatojcastro

Problemas com Handler.ashx

Recommended Posts

Alou Galera,

 

preciso muito de uma ajuda com upload de arquivos,

 

to usando um componente jQuery chamado Uploadify, em um exemplo que vi na internet, esse componente faz o upload de arquivos e grava em um TXT apenas o nome do arquivo, mas a intenção é gravar em uma base de dados, ou seja,

$(document).ready(function() {

$(function() {
       $('input[id$=fupMulti]').uploadify({
           'auto': true,
           'buttonText': 'Selecionar',
           'cancelImg': '../../js/Uploadi/cancel.png',
           'displayData': 'speed',
           'fileExt': '*.jpg;*.gif;*.png',
           'folder': '../../js/Uploadi',
           'multi': false,

           'queueSizeLimit': 1,
           'queueID': 'ArquivosContainer',
           'removeComplete': false,
           'script': '../../js/Uploadi/Handler.ashx',

           'sizeLimit': '900000',

           'uploader': '../../js/Uploadi/uploadify.swf',

           'onSelectOnce': function data(event, data) {
               $('#status-message').text(data.fileUploaded + 'arquivo' + data.errors + 'erros');
           }
       });

esse é o javascript com as configurações do Uploadify

agora vou colocar o Handler.ashx

<%@ WebHandler Language="C#" Class="Handler" %>

using System;
using System.Web;
using System.IO;

public class Handler : IHttpHandler {
   public void ProcessRequest (HttpContext context) {
       HttpPostedFile imgUpload = context.Request.Files["filedata"];

       StreamWriter wr = new StreamWriter(@"c:\teste\arquivo.txt", true);

       wr.WriteLine(imgUpload.FileName);

       wr.Close();

       context.Response.Write("Uploadify");
   }

   public bool IsReusable {
       get {
           return false;
       }
   }

}

bem aqui que esta minha duvida, eu não queria que ficasse gravado em um arquivo txt(Aqui ele grava o nome do arquivo certo, por exemplo se for upar uma foto cujo o nome foto.jpg ele grava no txt foto.jpg), porém preciso transformar esse arquivo em binário para poder gravar no banco de dados, minha ideia seria gravar em um hidden, para poder recuperar e transformar esse arquivo em binário e gravar no banco, pra depois poder recuperar. Para gravar no banco em chamo uma rotina ajax que monta um json e chama um metodo includeInterface(abaixo os codigos) para gravar no banco. Alguem tem ideia de como me ajudar?

// inclusão de registro
   $("#btnIncluir").live("click", function() {
       if (isValid) {
           DataSave();
       }
       else {
           jAlert("Os campos marcados em vermelho claro estão com valores inválidos. Por favor, corrija estes valores ou deixe-os em branco caso não sejam campos obrigatórios.", "Campos inválidos");
       }
   });

   function DataSave() {
       var params = new Object();
       params._WEB_ID = $("input[id$=_WEB_ID]").val();
       params._NEW_TITLE = $("#_NEW_TITLE").val();
       params._NEW_SUBTITLE = $("#_NEW_SUBTITLE").val();
       params._NEW_TEXT = $("#_NEW_TEXT").val();
       $.ajax({
           type: "POST",
           url: "News.aspx/InterfaceInclude",
           data: JSON.stringify(params),
           contentType: "application/json; charset=utf-8",
           dataType: "json",
           timeout: 50000,
           async: false,
           cache: false,
           beforeSend: function(data) {
               $("#btnIncluir").attr("disabled", "disabled");
               $("#ajax").removeClass("hidden");
           },
           success: function(data, textStatus) {
               if (data.d == "") {
                   ClearData();
                   jAlert("Registro Incluído!", "Aviso");
               }
               else {
                   jAlert("Não foi possível executar a operação. Por favor, tente novamente.", "Falha no Registro");
               }
           },
           error: function(data, textStatus) {
               jAlert("Não foi possível executar a operação. Por favor, tente novamente.", "Falha no Registro");
           },
           complete: function(data, textStatus) {
               $("#ajax").addClass("hidden");
               $("#btnConsulta").click();
           }
       });
   }

InterfaceInclude no arquivo Noticias.cs

[WebMethod]
   public static string InterfaceInclude(string _WEB_ID, string _NEW_TITLE, string _NEW_SUBTITLE, string _NEW_TEXT)
   {
       string lWReturn = "";
       try
       {
           DataFieldCollection lFields = new DataFieldCollection();
           OperationResult lReturn = new OperationResult();



           lFields.Add(NEWSQD._WEB_ID, _WEB_ID);
           lFields.Add(NEWSQD._NEW_TITLE, _NEW_TITLE);
           lFields.Add(NEWSQD._NEW_SUBTITLE, _NEW_SUBTITLE);
           lFields.Add(NEWSQD._NEW_TEXT, _NEW_TEXT);

           //lFields.Add(NEWSQD._FOTOINTERIOR, );
           lFields.Add(NEWSQD._NEW_REGUSER, "USER");
           lFields.Add(NEWSQD._NEW_REGDATE, DateTime.Now);
           lFields.Add(NEWSQD._NEW_STATUS, "A");

           lReturn = NEWSDo.Insert(lFields, LocalInstance.ConnectionInfo);

           if (!lReturn.IsValid)
           {
               Exception err = new Exception(lReturn.OperationException.Message.ToString());
               lWReturn = err.Message;
           }
       }
       catch (Exception err)
       {
           lWReturn = err.Message;
       }

       return lWReturn;
   }

 

 

OBRIGADO PELA ATENÇÃO

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.