【发布时间】:2014-06-25 19:44:57
【问题描述】:
我想将http://localhost/app/Uploads/file.png 之类的 URL 转换为我的应用程序虚拟路径,即~/Uploads/file.txt。
我的问题是如何在 asp net mvc 中完成?
编辑:对我的场景进行一些解释,以便进一步澄清。
我有一个“创建”表单。在此表单中,用户设置其个人资料并可以将照片上传到服务器。这张照片可以通过异步上传到服务器来预览。这是通过 FileUploadController 的操作 Post() 来完成的,它是一个 ApiController。此操作只是将上传的文件保存到虚拟路径“~/Uploads/”,然后返回保存文件的完整 URL,例如 http://localhost/app/Uploads/file.png。然后,页面上的 javascript 捕获此 url 并更新 <img> 标记以显示图片并使用此 URL 设置隐藏输入字段的值。这很好用。
现在,我必须实现这个“创建”表单的 提交 操作。除此之外,动作视图模型接收照片的 URL,即http://localhost/app/Uploads/file.png,它应该用于将文件“file.png”从临时位置“~/Uploads/file.png”复制到另一个位置。但是,要复制此文件,我需要它的 本地路径,而我只有 URL。
【问题讨论】:
-
您从哪里获得原始 URL?如果您只想创建指向该文件的链接,那么您将使用
Url.Content("~/Uploads/file.txt"),完全不需要完全限定的版本。 -
原始 URL 来自 Url.Content("~/Uploads/file.txt")。但是,它是在另一个 Action 中完成的。
-
这里不是很清楚问题出在哪里。或许您可以详细说明您正在实施的端到端功能,以及具体哪里失败了?
-
听起来您想将 FQDN 反转为 ~short。但是您还没有解释为什么要这样做,所以它听起来确实像XY Problem。换句话说,您认为能够做到这一点将解决一些根本问题,但您还没有描述这将解决的根本问题。很可能,这不是解决根本问题的方法
标签: asp.net .net asp.net-mvc