ASP. NET Core AzureBlob скачать файл с переименованием - PullRequest
0 голосов
/ 09 марта 2020

У меня есть следующий код на моей странице:

<a class="btn-default btn" href="<AzureBlobContainerUrl>/<guid>.psd" download="@Model.FileName" target="_blank">Download 
    <span class="glyphicon glyphicon-export"></span>
</a>

@Model.FileName представляет, например, 'MyPhotoshopFile.psd'

Первая проблема: Загруженный файл имеет оригинальный GUID в качестве имени файла Например, «MyPhotoshopFile.psd».

Вторая проблема: если файл, например, PDF, Google открывает файл непосредственно на текущей вкладке браузера, а не загружает его.

Любые решения для этого

Ответы [ 2 ]

1 голос
/ 09 марта 2020

Для первой проблемы попробуйте установить свойство Content-Disposition в BLOB-объекте. Если вы используете C# SDK, то возьмите большой двоичный объект, и вы можете установить C -D, используя что-то вроде этого:

blob.FetchAttributes();
blob.Properties.ContentDisposition = string.Format("attachment;filename=\"{0}\"", yourFileName);
blob.SetProperties();

На основе этого старого вопроса (Chrome Атрибут загрузки не работает ), атрибут "загрузки" в Chrome ведет себя по-разному в зависимости от C -D, поэтому его установка явно решит вашу вторую проблему.

0 голосов
/ 10 марта 2020

Ну, большое спасибо за ваши советы! Во-первых, код и ваш совет не работали (атрибут C -D игнорировался службами хранения azure blos), но после нескольких часов исследований я обнаружил проблему:

  • AccountKind StorageV2 (общего назначения v2) is НЕ работает с атрибутом C -D
  • AccountKind BlobStorage работает без проблем

Я заново создал хранилище BLOB-объектов и использовал устаревший тип учетной записи BlobStorage. При этом работает атрибут ContentDisposition.

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