我想将http://localhost/app/Uploads/file.png
之类的网址转换为我的应用虚拟路径,即~/Uploads/file.txt
。
我的问题是如何在asp net mvc中完成?
编辑:对我的情景进行一些解释,以便进一步澄清。
我有一个“创建”表单。在此表单中,用户可以设置其配置文件,并可以将照片上传到服务器。可以通过异步上传到服务器来预览此照片。这是通过FileUploadController的动作Post()来完成的,它是一个ApiController。此操作只是将上传的文件保存到虚拟路径“〜/ Uploads /”,然后将完整的URL返回到保存的文件,如http://localhost/app/Uploads/file.png
。然后,页面上的javascript会捕获此网址并更新<img>
标记以显示图片,并使用此网址设置隐藏输入字段的值。这很好。
现在,我必须实施此“创建”表单的提交操作。除此之外,动作视图模型接收照片的URL,即http://localhost/app/Uploads/file.png
,它应该用于将文件'file.png'从临时位置“〜/ Uploads / file.png”复制到另一个地点。但是,要复制此文件,我需要本地路径,而我所拥有的只是网址。
答案 0 :(得分:3)
你可以这样做。 在剃须刀视图中写下此内容以获取根相对路径
<script type="text/javascript">
var baseUrl = '@Url.Content("~")';
</script>
然后,在您的提交按钮的客户端操作中,您可以访问并将localpath
传递给控制器的文件复制操作方法。
$("#submit").click(function () {
var localpath = baseUrl + "Uploads/file.png";
...
...
});
以下是link我的另一篇文章,几乎是一个类似的问题。