передать C # байтовый массив в JavaScript - PullRequest
7 голосов
/ 28 февраля 2011

У меня есть ситуация, в которой у меня есть байтовый массив изображения в коде за классом C # веб-страницы (всплывающая страница)

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();
}

Я хочу получить passte byteImage для функции-обработчика, т.е..in javascript / на родительской странице

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

как получить байтовый массив на returnValue (теперь он содержит только System.Byte [])

есть ли способ получить доступ к C3массив байтов [] из Javascript ??

thankx

Ответы [ 2 ]

6 голосов
/ 28 февраля 2011

Вы можете использовать кодировку base64 для безопасного кодирования байтового массива:

var result = Convert.ToBase64String(bytes);

Конечно, чтобы получить доступ к исходным значениям байтов в JavaScript, вам придется преобразовать их обратно на стороне JavaScript. Для этого в JavaScript нет встроенной функции, но вы, вероятно, можете получить реализацию decodeBase64 с этого сайта .

2 голосов
/ 28 февраля 2011

Вы можете использовать это

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

при условии, что вы используете .Net 4.0

...