【问题标题】:ASP.NET MVC Server.MapPath giving full path in Internet ExplorerASP.NET MVC Server.MapPath 在 Internet Explorer 中提供完整路径
【发布时间】:2016-09-12 03:58:24
【问题描述】:

我正在上传一个文件

var filename = Server.MapPath(Path.Combine("~/Content/UserContent", Path.ChangeExtension(newName,Path.GetExtension(attachments.FileName))));
attachments.SaveAs(filename);

它工作得很好,除了在 Internet Explorer 中它提供完整路径“C:\Users\okke\Desktop\GEWOONEENMAP OK\etags.txt”而不是只说“etags.txt”,我该如何解决这个问题?

【问题讨论】:

    标签: asp.net-mvc server.mappath


    【解决方案1】:

    在结果上调用 Path.GetFileName 以仅获取文件名,例如

    attachments.SaveAs(Path.GetFileName(fileName));
    

    如果fileName 的值是一个文件路径,它将返回文件名(带ext),如果它已经是一个有效的文件名,它将返回相同的值。

    【讨论】:

    • 是的,但现在它说 SaveAs 需要一个根路径,当我将文件保存到数据库时(只是名称),它会保存整个路径名,除了“etags.txt”
    • 嗯,这不是您最初的问题,但是,要解决它,您需要做的就是用Path.GetFileName 包裹您的Path.ChangeExtension 呼叫,而不是在SaveAs 呼叫中。
    猜你喜欢
    • 2011-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-21
    • 1970-01-01
    • 2011-10-10
    • 2015-10-28
    相关资源
    最近更新 更多