[英]C# EF ASP.NET Web API timeout - how can I call a long running query?
[英]How can I download file in my folder c# ASP.NET Web API?
我的C:\fileName
中需要一個下載文件。
我被發送到 fileName 此類,但它不起作用? 我的錯誤在哪里?
這是我的代碼:
// POST: api/Calendar/DownloadFile
[HttpPost]
public HttpResponseMessage DownloadFile(DownloadInput fileName)
{
var result = new HttpResponseMessage(HttpStatusCode.OK);
var filePath = HttpContext.Current.Server.MapPath(@"C:\" + fileName);
var fileBytes = File.ReadAllBytes(filePath);
var fileMemStream = new MemoryStream(fileBytes);
result.Content = new StreamContent(fileMemStream);
var headers = result.Content.Headers;
headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
headers.ContentDisposition.FileName = fileName;
headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
headers.ContentLength = fileMemStream.Length;
return result;
}
這是我的錯誤:
異常類型:“System.NotImplementedException”
消息:“發生錯誤。”
以下是 MVC 的:
public ActionResult DownloadFile(string fileWithFullPath)
{
var fileBytes = System.IO.File.ReadAllBytes(fileWithFullPath);
return File(fileBytes, MediaTypeNames.Application.Octet, fileName);
}
以下是API:
public ActionResult DownloadFile()
{
var result = new HttpResponseMessage(HttpStatusCode.OK);
var stream = new FileStream(fullyQualifiedFileName, FileMode.Open);
result.Content = new StreamContent(stream);
result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/pdf");
result.Content.Headers.ContentLength = stream.Length;
string input = $"filename=test.pdf";
ContentDispositionHeaderValue contentDisposition = null;
if (ContentDispositionHeaderValue.TryParse(input, out contentDisposition))
{
result.Content.Headers.ContentDisposition = contentDisposition;
}
return this.ResponseMessage(result);
}
根據您在此處顯示的內容,參數 DosyaAdi 是一個字符串,不清楚 DownloadInput 是什么。 我建議將輸入參數更改為字符串,並將方法更改為 HttpGet。 第二個建議是為了慣例,可能不是問題。
// GET: api/Calendar/DownloadFile
[HttpGet]
public HttpResponseMessage DownloadFile(string DosyaAdi)...
祝你好運
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.