查找文件的确切路径

本文关键字:路径 文件 查找 | 更新日期: 2023-09-27 18:28:50

我正在使用 fileUpload 控件。当我上传文件时,我想找到文件的确切位置。

我尝试使用:

  1. string fname= Server.MapPath(FileUpload2.FileName);
  2. string fname= FileUpload2.FileName;
  3. string fname= FileUpload2.PostedFile.FileName;

数字2和3给了我文件的名称。数字 1 给了我网站位置的路径。我不知道 2 和 3 有什么区别,为什么两者都给了我相同的结果。

我在某处读到,你无法得到路径。是真的吗?如果没有,我应该使用什么代码?

查找文件的确切路径

没有实际的文件路径,因为上传到服务器的文件只是保存在内存中。

FileUpload控件只是围绕HttpPostedFile实例的包装器,而实例本身基本上只是围绕InputStream的包装器。

您实际将文件保存在某个地方。在此之前,它不存在于任何物理位置。

FileName 属性仅对应于客户端计算机中的文件名减去路径。它与服务器文件系统上的任何内容都没有关联。

有几种不同的方法可以处理该文件。

将文件保存到磁盘:

控件提供了一种SaveAs方法,允许您在本地保存文件或您有权访问的某些 UNC。

FileUpload2.SaveAs("C:''Temp''" + FileUpload2.FileName);

处理内存中的文件:

由于您可以访问FileContent,因此您可以直接操作和处理文件。假设你知道它是什么类型的文件(txt,pdf,csv等...

using (var sr = new StreamReader(FileUpload2.FileContent)) 
{
    while ((var line = sr.ReadLine()) != null) 
    {
        //Do something with 'line'
    }
}