Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何获取asp.net mvc 5应用程序中临时文件夹中存储的文件的全名?_C#_Asp.net Mvc_Asp.net Mvc 5_Httppostedfilebase - Fatal编程技术网

C# 如何获取asp.net mvc 5应用程序中临时文件夹中存储的文件的全名?

C# 如何获取asp.net mvc 5应用程序中临时文件夹中存储的文件的全名?,c#,asp.net-mvc,asp.net-mvc-5,httppostedfilebase,C#,Asp.net Mvc,Asp.net Mvc 5,Httppostedfilebase,我有一个应用程序是在ASP.NET MVC 5框架上用c#on the top编写的。我的一个页面允许用户将文件上载到服务器。因此,我使用HttpPostedFileBase将文件上载到服务器 但是,在将文件保存到永久位置时,我希望能够提取文件的全名,并在将其移动到永久位置之前对其进行处理 如何获取上传文件的临时全名 我尝试了以下操作,但是检查File.Exists(tempFullname)总是失败 public string GetFullname(HttpPostedFileBase fi

我有一个应用程序是在ASP.NET MVC 5框架上用c#on the top编写的。我的一个页面允许用户将文件上载到服务器。因此,我使用
HttpPostedFileBase
将文件上载到服务器

但是,在将文件保存到永久位置时,我希望能够提取文件的全名,并在将其移动到永久位置之前对其进行处理

如何获取上传文件的临时全名

我尝试了以下操作,但是检查
File.Exists(tempFullname)
总是失败

public string GetFullname(HttpPostedFileBase file)
{
    string tempFullname = Path.GetTempPath() + file.FileName;

    if(File.Exists(tempFullname))
    {
        return tempFullname;
    }

    return string.Empty;
}
我还尝试了以下操作,但是
temp.Length
抛出异常,因为文件不存在

public string GetFullname(HttpPostedFileBase file)
{
    string temp = new FileInfo(file.FileName);

    if(temp.Length > 0)
    {
        return tempFullname;
    }

    return string.Empty;
}

要获取需要先保存文件的文件的全名,如果您不先保存文件,我将无法获取文件的位置

var filePath = Path.Combine(Server.MapPath("<A folder you want>"), file.FileName);

file.Save(filePath);
var filePath=Path.Combine(Server.MapPath(“”),file.FileName);
保存(filePath);

这样,filePath就是文件的完整路径

为什么它会存在?@SamAxe也许我不知道上传过程。但在我看来,当上传文件时,它会自动放入临时文件夹,然后我的一个朋友选择使用
SaveAs()
方法将其移动到永久位置。除非您编写代码将文件放在磁盘上,否则该文件在磁盘上不存在。该文件仅作为字节流存在于内存中(附加到HttpPostedFileBase实例;InputStream属性),直到您将其复制到某个位置。文件数据位于
文件
变量的内存中,而不是其他位置。临时文件夹根本不涉及。