আমি ভাবছিলাম যে আরও একটি ফাইল "সাধারণ" উপায়ে ডাউনলোড করার কোনও সহজ উপায় ছিল কিনা? আমি এই নিয়ে এসেছি।
এটি এমন একটি সহজ ActionResult
যা আপনাকে একটি নিয়ন্ত্রণকারী কল থেকে একটি ফাইল ডাউনলোড করার অনুমতি দেয় যা একটি ফেরত দেয় IHttpActionResult
। ফাইলটি সংরক্ষণ করা হয় byte[] Content
। প্রয়োজনে আপনি এটিকে স্রোতে পরিণত করতে পারেন।
আমি এটি একটি ডাটাবেসের ভের্বাইনারি কলামে সঞ্চিত ফাইলগুলি ফিরতে ব্যবহার করেছি।
public class FileHttpActionResult : IHttpActionResult
{
public HttpRequestMessage Request { get; set; }
public string FileName { get; set; }
public string MediaType { get; set; }
public HttpStatusCode StatusCode { get; set; }
public byte[] Content { get; set; }
public Task<HttpResponseMessage> ExecuteAsync(CancellationToken cancellationToken)
{
HttpResponseMessage response = new HttpResponseMessage(StatusCode);
response.StatusCode = StatusCode;
response.Content = new StreamContent(new MemoryStream(Content));
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
response.Content.Headers.ContentDisposition.FileName = FileName;
response.Content.Headers.ContentType = new MediaTypeHeaderValue(MediaType);
return Task.FromResult(response);
}
}