在使用aspx和CS将文件上传到服务器之前,如何在选择文件时获取代码中的文件名?

时间:2014-03-06 07:35:55

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

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

实际上我想要的是获取文件名并根据选择的文件从数据库中检索一些字段,并在某些文本字段中发送从客户端的数据库中检索的数据。所以在点击上传之前,我需要在代码中调用一个方法来验证所有这些东西。我尝试使用AjaxControlToolkit,它无法正常工作。

4 个答案:

答案 0 :(得分:0)

使用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 ''

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

请参阅以下代码示例以获取文件名:

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

答案 3 :(得分:0)

客户端代码

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

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

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