Скачивание BLOB-файлов через браузер - PullRequest
0 голосов
/ 29 января 2020

Я пытаюсь заставить кнопку инициировать загрузку из хранилища BLOB-объектов для моего пользователя. Однако при нажатии кнопки загрузка никогда не начинается, она висит на панели загрузки. Смотрите мое событие обратного вызова ниже. Тип 'Blob' - это просто некоторый класс-оболочка в кодовой базе для всех обычных azure функций BLOB-объектов в. net. Кажется, что все работает нормально в событии, когда проходит через него, так как в HTTP-ответе правильно строится с правильным файлом, так что я думаю, что это может быть проблемой жизненного цикла? но я все еще могу понять, почему это так? пожалуйста, помогите мне!

protected void DownloadFile_CustomButtonCallback(object sender, ASPxGridViewCustomButtonCallbackEventArgs e)
{
    var blobStorageId = gDownloads.GetRowValues(e.VisibleIndex, "BlobStorageId");

    var azureConnectionString = ConfigurationManager.ConnectionStrings("AzureStorageConnectionString").ConnectionString;

    Blob bs = new Blob(azureConnectionString, kStorageContainer, kStorageFolder);
    var blobItem = bs.DownloadAnyExtension(blobStorageId.ToString).FirstOrDefault();

    MemoryStream ms = new MemoryStream();
    blobItem.DownloadToStream(ms);
    var resultStream = ms.ToArray();

    HttpContext.Current.Response.Buffer = true;
    HttpContext.Current.Response.Clear();
    HttpContext.Current.Response.ContentType = blobItem.ContentType;
    HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=" + blobItem.FileName.ToString);
    HttpContext.Current.Response.AddHeader("content-length", blobItem.GetLength.ToString);
    HttpContext.Current.Response.BinaryWrite(resultStream);

    HttpContext.Current.Response.Flush();
    HttpContext.Current.Response.End();
    ms.Close();

    RefreshGrid();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...