Метод .ToString()
по умолчанию для любого класса, если он не переопределен этим классом, напечатает полное имя класса (как это происходит в вашем случае).Вместо этого вам нужно использовать свойство BLOB .Name
, чтобы получить ключ.Получив ключ, вы можете сократить его до части имени файла:
string fileName = Path.GetFileName(blob.Name);
HttpContext.Current.Response.AddHeader("Content-Disposition", "Attachment; filename=" + fileName);
В целях безопасности (с точки зрения использования плохих символов в имени файла) вы можете рассмотреть возможность использования filename*=
, как описано в RFC6266 с соответствующей кодировкой:
string encodedFileName = Server.UrlEncode(Path.GetFileName(blob.Name), Encoding.UTF8);
HttpContext.Current.Response.AddHeader("Content-Disposition", "Attachment; filename*=UTF-8''" + fileName);
Подробнее см. Этот вопрос .