【问题标题】:How to make a path to a Web Api method如何为 Web Api 方法创建路径
【发布时间】:2018-04-20 03:50:54
【问题描述】:

我想写一个方法,可以动态发送文件夹路径,然后发送图片文件给客户端。

代码是静态的

[Route("GetImageFile/{id}")]
[HttpGet]
public HttpResponseMessage GetImageFile(string id)
{
    var response = new HttpResponseMessage(HttpStatusCode.OK);
    FileStream stream = new FileStream(@"d:\gate\images\" + @"\" + id + ".jpg", 
                 System.IO.FileMode.Open);
    response.Content = new StreamContent(stream);
    response.Content.Headers.ContentType = 
                 new System.Net.Http.Headers.MediaTypeHeaderValue("image/png");
    return response;
}

现在我想从客户那里动态获取这一集 @ "d: \ gate \ images \"

【问题讨论】:

  • 那有什么问题?
  • 现在我想从客户端动态获取剧集@“d:\gate\images\”。 - @IpsitGaur
  • 您可以简单地从下面回答的参数中获取它,但这不是首选方式

标签: image file asp.net-web-api path getfiles


【解决方案1】:

我认为从 uri 采取第二个行动参数将解决您的问题,但是这种方法并不完全平静。示例:

[Route("GetImageFile/{id}")]
[HttpGet]
public HttpResponseMessage GetImageFile([FromUri] string id, [FromUri] string searchIn = @"d:\gate\images\") //d:\gate\images\ as default path
{
    var response = new HttpResponseMessage(HttpStatusCode.OK);
    FileStream stream = new FileStream(searchIn + @"\" + id + ".jpg", 
                 System.IO.FileMode.Open);
    response.Content = new StreamContent(stream);
    response.Content.Headers.ContentType = 
                 new System.Net.Http.Headers.MediaTypeHeaderValue("image/png");
    return response;
}

你可以这样称呼:

Get GetImageFile/myfileId?searchIn=c:\pub //P.S. Don't forget about URL encoding and security

【讨论】:

    猜你喜欢
    • 2023-03-28
    • 2013-05-14
    • 2018-12-10
    • 1970-01-01
    • 2019-09-04
    • 1970-01-01
    • 1970-01-01
    • 2013-05-05
    • 1970-01-01
    相关资源
    最近更新 更多