2012-04-03 22 views

Respuesta

20

SignalR es para enviar mensajes en tiempo real sin cargar archivos.

+2

Supongamos que quería construir una secuencia que podría pasarse a un componente del lado del servidor que requería la capacidad de buscar en un archivo grande, donde el cliente es un navegador que tiene la API de archivos JS. ¿Qué usaría para implementar eso de manera semiperformativa? – ehdv

+0

Una publicación de transmisión a un punto final de webapi funcionaría bien para eso. De hecho, durante el procesamiento, incluso podría desencadenar eventos de inserción en relación con el estado del procesamiento del servidor en tiempo real si notificaba a su concentrador que presionara al cliente mientras inspeccionaba la transmisión. – Bon

1

Carga de este archivo utilizando el complemento de carga de entrada de archivos (krajee) También puede cargar archivos sin utilizar este complemento.

@section Page{ 

    <script src="~/Scripts/bootstrap-switch.min.js"></script> 
    <script src="~/Scripts/Uploader/fileinput.js"></script> 
    <link href="~/Scripts/Uploader/fileinput.css" rel="stylesheet" /> 
    <script> 
     var itemHub = $.connection.ItemHub; 
    $(document).ready(function() { 
     $.connection.hub.start().done(function() { 

      //do any thing 

     }); 
     $("#fileinput").fileinput({ 
      allowedFileExtensions: ["jpg", "png", "gif", "jpeg"], 
      maxImageWidth: 700, 
      maxImageHeight: 700, 
      resizePreference: 'height', 
      maxFileCount: 1, 
      resizeImage: true 
     }); 


     $("#fileinput").on('fileloaded', function (event, file, previewId, index, reader) { 


      var readers = new FileReader(); 
      readers.onloadend = function() { 
       $(".file-preview-image").attr('src', readers.result); 
      } 
      readers.readAsDataURL(file); 
     }); 




     $('#btnSave').click(function() { 
      var imagesJson = $('.file-preview-image').map(function() { 
       var $this = $(this); 
       return { 
        image: $this.attr('src'), 
        filename: $this.attr('data-filename') 
       }; 
      }).toArray(); 

      itemHub.server.getByteArray(imagesJson); 
     }); 
    }); 

    </script> 
    } 

código de clase Hub

[HubName("ItemHub")] 
    public class ItemHub : Hub 
    { 
      public void GetByteArray(IEnumerable<ImageData> images) 
      { 
      foreach (var item in images ?? Enumerable.Empty<ImageData>()) 
      { 
       var tokens = item.Image.Split(','); 
       if (tokens.Length > 1) 
       { 
        byte[] buffer = Convert.FromBase64String(tokens[1]); 

       } 
       } 
      } 
    } 

    public class ImageData 
    { 
     public string Description { get; set; } 
     public string Filename { get; set; } 
     public string Image { get; set; } 
    } 
Cuestiones relacionadas