c# - 查找文件的确切路径

标签 c# asp.net

我正在使用 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属性仅对应于客户端计算机的文件名减去路径。它与服务器文件系统上的任何内容都没有关联。

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

将文件保存到磁盘:

FileUpload 控件提供了一个 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'
    }
}

关于c# - 查找文件的确切路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18423094/

相关文章:

c# - ASP.NET MVC 调用存储过程时未提供错误参数

asp.net - 如何防止 ASP.NET 记录身份验证失败?

asp.net - MSCharts “No http handler was found for request type ' GET'”错误

asp.net - 从移动设备查看本地主机网站

c# - 这可以通过 javascript 实现吗?

c# - 更新面板不更新

c# - 使用根中的数字对象反序列化 JSON

c# - 使用 C# 获取单色图像的像素颜色

c# - Task.WaitAll 死锁

c# - 移动列表中的元素