通过URLjoin泊坞窗卷
我用c#创build了一个小webapi,可以让我的用户上传图片。 该方法如下所示:
public async Task<IActionResult> CreateXXX(ADto dto) { // Save the image in a docker volume }
CreateXXX
方法以ADto
作为参数,其中包含一些属性,一个是我的图像,base64编码。 我基本上在这里做的很简单:我解码图像,然后,因为我的webapi服务托pipe在docker容器中,我将它保存在docker卷。 一切工作正常,我可以看到图像保存在我的主机(我映射的卷)。
现在,我在我的webapi服务上创build了一个get返回给客户端的图像。 同样, ADto
包含一些属性,一个是我的映像在磁盘上的path (我的docker-volume)。 path如下所示: /pictures/123456789.jpg
问题是:浏览器应该如何访问资源来显示图像? 使用http:// localhost:5001 / pictures / 123456789.jpg不起作用。 (本地主机:5001是我的webapi托pipe的地方)。
客户端浏览器永远不会访问您的本地文件系统。 唯一的方法是URL是有效的,如果你的web服务器上有一个处理器把传入请求映射到你的本地文件系统。 无论您的应用程序是在Docker容器还是服务器中运行,它都没有什么区别。
如果您将IIS用作Web服务器,则可以创build一个虚拟目录并将其映射到文件系统上的图片目录。 如果您将Kestrel用作应用程序服务器,则需要实施处理程序以将传入的请求转换为您的图片文件。
您需要更具体地了解您使用的技术,否则无法进一步提供帮助。