2017-01-10 7 views
-1

У меня есть base64 строка изображения. преобразуя его в байтовый массив &, затем преобразуя его в memoryStream. Как загрузить это изображение на клиентскую машину. Строка или изображение base64 не сохраняется на сервере/в папке/в любом месте. Он создается динамически. Я пробовалНе удается загрузить изображение на клиентскую машину

1) Response.ContentType = "image/png" => дает исключение obj, не установленное в момент объекта. как этот

Context.Response.Clear(); 
Context.Response.ClearHeaders(); 
Context.Response.AddHeader("Content-Disposition", "attachment; filename=" + registrationId + ".png"); 
Context.Response.ContentType = "image/jpeg"; 
Response.AddHeader("Content-Length", bytes.Length.ToString()); 
//Response.ContentType = "application/octet-stream"; 
Context.Response.BinaryWrite(bytes); 

2) с помощью веб-клиента => дает исключение

using (WebClient client = new WebClient()) 
{ 
    client.DownloadFile(ms1.ToString(), registrationId + ".png"); 
} 

Любое другое решение?

+0

Как насчет [ответа от germankiwi] (http://stackoverflow.com/a/12631127/5588347)? –

+0

Почему вы используете 'Response.AddHeader (« Content-Length », bytes.Length.ToString());' без 'Context.'? – GraDea

+0

Во втором сценарии вы просто попробуйте загрузить файл на сервер. Это не работает. – GraDea

ответ

0

Просто попробуйте изменить

Response.AddHeader("Content-Length", bytes.Length.ToString()); 

в

Context.Response.AddHeader("Content-Length", bytes.Length.ToString()); 

Я думаю, что вы не имеете действительный Page объект в этом контексте.

+0

@GraDea ... получил ошибку на что вы предложили .. «Значение не подпадает под ожидаемый диапазон». –

Смежные вопросы