110,529
社区成员
发帖
与我相关
我的任务
分享
[HttpGet]
public HttpResponseMessage DownFile([FromUri] string fileGuid, [FromUri] string fileName, [FromUri] string sign)
{
var file = Path.Combine(ConfigHelper.GetInventoryFileSaveDirectory(), HttpUtility.UrlDecode(fileGuid), HttpUtility.UrlDecode(fileName));
FileStream stream = new FileStream(file, FileMode.Open, FileAccess.Read);
{
HttpResponseMessage result = new HttpResponseMessage(System.Net.HttpStatusCode.OK);
result.Content = new StreamContent(stream);
result.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/octet-stream");
result.Content.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment")
{
FileName = HttpUtility.UrlEncode(Path.GetFileName(file))
};
//记录下载日志,同一个会话会多次调用
return result;
}
}
[HttpGet]
public async Task Get()
{
var fileinfo = new FileInfo(@"E:\迅雷下载\MicrosoftOffice2016.zip");
using (FileStream fs = fileinfo.OpenRead())
{
var file = this.File(fs, "application/octet-stream");
try
{
await file.ExecuteResultAsync(this.ControllerContext);
logger.LogInformation("下载完毕");
}
catch (Exception e)
{
logger.LogInformation("下载失败");
}
}
}
[ApiController]
[Route("[controller]")]
public class TestController : ControllerBase
{
private readonly ILogger<TestController> logger;
public TestController(ILogger<TestController> logger)
{
this.logger = logger;
}
[HttpGet]
public async Task<ActionResult> Get()
{
var fileinfo = new FileInfo(@"E:\迅雷下载\MicrosoftOffice2016.zip");
using (FileStream fs = fileinfo.OpenRead())
{
var file = this.File(fs, "application/octet-stream");
try
{
await file.ExecuteResultAsync(this.ControllerContext);
logger.LogInformation("下载完毕");
}
catch (Exception e)
{
logger.LogInformation("下载失败");
}
return file;
}
}
}