Core:
public ActionResult Get(string id) { HttpResponseMessage result = null; DirectoryInfo directoryInfo = new DirectoryInfo(@"D:\pic"); FileInfo foundFileInfo = directoryInfo.GetFiles().FirstOrDefault(x => x.Name == id); if (foundFileInfo != null) { FileStream fs = new FileStream(foundFileInfo.FullName, FileMode.Open); result = new HttpResponseMessage(HttpStatusCode.OK); result.Content = new StreamContent(fs); result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = foundFileInfo.Name }; return File(fs, "application/octet-stream"); } else { return NotFound(); } }
Fwk
public HttpResponseMessage Get(string filePath) {
FileStream stream = new FileStream(filePath, FileMode.Open); HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK); response.Content = new StreamContent(stream); response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream"); response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = HttpUtility.UrlEncode(fileName) }; response.Headers.Add("Access-Control-Expose-Headers", "FileName"); response.Headers.Add("FileName", HttpUtility.UrlEncode(fileName)); return response;
}