2011-02-28 1 views
5

j'ai une situation dans laquelle j'ai un tableau d'octets d'une image dans le code derrière la classe C# d'une page Web (pop-up Page)passe C tableau # octets à javascript

protected void ToFile(byte[] byteImage) 

{ 
      string strByte = byteImage.ToString(); 
      this.Context.Response.Write("<script type='text/javascript'>window.frameElement.commitPopup('" + byteImage + "');</script>"); 
      this.Context.Response.End(); 
} 

je veux passer byteImage à la fonction de gestionnaire c.-à-.in javascript/de la page parent

function onDialogClose(dialogResult,returnValue) { 
     if (dialogResult == SP.UI.DialogResult.OK) { 
      //var inputBuffer = new System.Byte(returnValue.length); 
      //var byte = new Array(); 
      //byte = returnValue; 

comment obtenir le tableau d'octets à returnValue (maintenant il contient System.Byte []) ne

est-il possible d'accéder à l'octet C3 [] tableau de Javascript ??

thankx

Répondre

4

Vous pouvez utiliser le codage base64 pour coder le tableau d'octets en toute sécurité:

var result = Convert.ToBase64String(bytes); 

Bien sûr, afin d'accéder aux valeurs d'octet d'origine en JavaScript, vous devrez convertir retour sur le côté JavaScript. Il n'y a pas de fonction intégrée pour cela en JavaScript, mais vous pouvez probablement grab the decodeBase64 implementation from this website.

1

Vous pouvez utiliser cette

private string Bytes2String(byte[] bytes){ 
    return "["+string.Join(",",bytes.Select(b=>b.ToString()))+"]"; 
} 

à condition que vous utilisez .Net 4.0