【问题标题】:How to get the Filename in code behind on selecting a file, before uploading it to the server using aspx and CS?在使用 aspx 和 CS 将文件上传到服务器之前,如何在选择文件的代码中获取文件名?
【发布时间】:2014-03-06 07:35:55
【问题描述】:

我想检索文件名并对该文件名执行一些验证。所以在上传之前,我必须获取选择要上传的文件的文件名。

实际上我想要的是获取文件名并根据选择的文件从数据库中检索一些字段,并将从客户端数据库检索到的数据发送到某个文本字段中。因此,在单击上传之前,我需要在代码中调用一个方法,该方法将验证所有这些内容。我尝试使用 AjaxControlToolkit,它不起作用。

【问题讨论】:

  • 使用Path.GetFileNamePath.GetFileNameWithoutExtension

标签: asp.net visual-studio-2010 sharepoint-2010


【解决方案1】:

使用GetFileName() 方法。以下示例来自 MSDN 链接。

string fileName = @"C:\mydir\myfile.ext";
string path = @"C:\mydir\";
string result;

result = Path.GetFileName(fileName);
Console.WriteLine("GetFileName('{0}') returns '{1}'", 
    fileName, result);

result = Path.GetFileName(path);
Console.WriteLine("GetFileName('{0}') returns '{1}'", 
    path, result);

// This code produces output similar to the following: 
// 
// GetFileName('C:\mydir\myfile.ext') returns 'myfile.ext' 
// GetFileName('C:\mydir\') returns ''

【讨论】:

    【解决方案2】:

    如果您想在将文件名发送到服务器之前验证客户端上的文件名,您将无法使用 C# 执行此操作,但是您可以很容易地用 Javascript 编写验证函数。

    您可以对文件执行服务器端验证,但这意味着上传文件之后。然后,您可以确保该文件满足您的所有验证条件,如果由于某种原因验证失败,您可以将错误消息返回给用户。但这意味着页面的完整回发。

    【讨论】:

      【解决方案3】:

      查看以下代码示例以获取文件名:

      var filePath = "C:\\SpiderCode\\MyFile.txt";
      var fileName = System.IO.Path.GetFileName(filePath);
      

      【讨论】:

        【解决方案4】:

        客户端代码

        <asp:FileUpload runat="server" ID="FileUpload" Width="100px" />
        

        在后面的代码中,检查用户是否选择了任何文件,然后它会简单地为您提供fileName 变量中的文件名。

        if (FileUpload.HasFile)
        {
            string fileName = FileUpload.FileName;
        } 
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-03-07
          • 2014-12-19
          • 1970-01-01
          • 2019-10-12
          • 2014-03-24
          • 1970-01-01
          相关资源
          最近更新 更多