首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用asp.net mvc应用程序从服务器上的网络路径读取?

如何使用asp.net mvc应用程序从服务器上的网络路径读取?
EN

Stack Overflow用户
提问于 2017-07-15 13:03:36
回答 1查看 2.3K关注 0票数 0

我已经在运行.net MVC应用程序的web服务器上设置了一个网络路径,到另一个用于存储上传的文件的服务器上。为了允许通过应用程序将文件上传到网络路径,我修改了IIS中的应用程序池,以便应用程序有权上传到它。一切都很好。

为了让应用程序在加载页面时读取文件,我在IIS中创建了一个虚拟目录,该目录现在显示为IIS中该站点的文件系统的一部分。然后,如何在我的应用程序中访问和生成这个位置的路径,以便将路径传递给DB,然后将图像加载到页面上?

假设我的道路是:

虚拟路径是用户上传/Image.jpg

如何让我的应用程序识别我创建的虚拟路径?

或者取消IIS中的虚拟目录,我是否可以让我的应用程序直接访问web服务器上的网络路径?

编辑-为了添加到上面,我在iis中映射了网络路径,它以iis显示在我的站点下面,如下所示:

然后,我想使用这样的地址从asp.net mvc应用程序中的这个目录中读取,比如这个~/useruploads/file.jpg。如果我能让我的应用程序识别这个虚拟目录,那么我就可以从它中读取。

编辑第2号

好的,我想我已经确定了我的问题的性质,并且更清楚了。基本上,当我在网页上链接到该文件时,我就可以访问它了。然而,我得到的信息‘不允许加载本地资源’的铬。我认为这只是一个网页浏览器不允许我加载图像的问题,因为它是在页面上引用的本地地址(网络路径)。因此,我现在正试图在应用程序中创建一个操作,用指向我的操作的Url.Action加载映像,然后将id转换为图像的流。

我认为:

代码语言:javascript
复制
<img src="@Url.Action("image", "files", new { image = Model.image})" alt="name" />

其中Mode.image有点像folder\image.jpg。

操作:

代码语言:javascript
复制
public FileResult image(string id)
        {
            var dir = @"\\SERVERNAME\upload\";
            var path = Path.Combine(dir, id);

            return base.File(path, "image/jpg");
        }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-16 11:39:30

因此,最后,我的问题是我无法将图像放在页面上,因为它使用的是服务器上的本地地址,这在浏览器中是不允许的。为了使用网络路径,我必须使用

代码语言:javascript
复制
<img src="@Url.Action("image", "files", new { image = Model.image})" alt="name" />

在我看来,这一行动:

代码语言:javascript
复制
public FileResult image(string id)
    {
        var dir = @"\\SERVERNAME\upload\";
        var path = Path.Combine(dir, id);
        string contentType = MimeMapping.GetMimeMapping(path);

        return base.File(path, contentType);
    }

然后,这会将图像返回到页面,尽管这意味着图像没有被缓存。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45118507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档