如何使用 C# asp.net 在 GridView 中添加文件上传日期和/或时间?

Posted

技术标签:

【中文标题】如何使用 C# asp.net 在 GridView 中添加文件上传日期和/或时间?【英文标题】:How to add a file upload date and/or time in GridView using C# asp.net? 【发布时间】:2020-03-25 18:35:48 【问题描述】:
protected void Button2_Click(object sender, EventArgs e)
    
        if (FileUpload1.HasFile)
        
            string fileExtenstion = System.IO.Path.GetExtension(FileUpload1.FileName);
            if (fileExtenstion.ToLower() != ".doc" && fileExtenstion.ToLower() != ".docx")
            
                Label1.Text = "Only files of docx extenstion are allowed";
                Label1.ForeColor = System.Drawing.Color.Red;
            
            else
            
                FileUpload1.SaveAs(Server.MapPath("~/uploads/" + FileUpload1.FileName));
                Label1.Text = "File Uploaded successfully";
                Label1.ForeColor = System.Drawing.Color.Green;
                string[] filepaths = Directory.GetFiles(Server.MapPath("~/uploads/"));
                DataTable dt = new DataTable();
                DataRow dr;
                dt.Columns.Add("filenames");
                foreach (string filepath in filepaths)
                
                    dr = dt.NewRow();
                    dr["filenames"] = Path.GetFileName(filepath).ToString();
                    dt.Rows.Add(dr);
                
                GridView1.DataSource = dt;
                GridView1.DataBind();
            
        
        else
        
            Label1.Text = "Please upload the file";
            Label1.ForeColor = System.Drawing.Color.Red;
        
    
    protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
    
        GridViewRow gr = GridView1.SelectedRow;
        string filepath = Server.MapPath("~/upload/" + gr.Cells[0].Text);
        Response.ContentType = ContentType;
        Response.AppendHeader("Content-Disposition", "attachment; filename=" + Path.GetFileName(filepath));
        Response.WriteFile(filepath);

        Response.End();
    

所以这段代码基本上是让用户上传文件并显示可以下载的上传文件的名称。不,我在 Gridview 中创建了边界域。有人可以告诉我如何将文件上传时间和日期显示为上面显示的相同代码吗? 非常感谢。

【问题讨论】:

您是否将上传日期时间存储在任何地方? 目前,不。但我确实想知道如何在 Gridview 列中显示它。我的意思是,上传完成后应立即添加日期。 【参考方案1】:

您可以使用以下方法获取文件的创建时间和修改时间。

创建日期时间 = File.GetCreationTime(@"C:\test.txt"); DateTime 修改 = File.GetLastWriteTime(@"C:\test.txt");

然后,您可以在数据源中再添加一列作为日期时间,以在 GridView 上显示。

感谢和问候, 迪尔沙德·古拉姆汗。

【讨论】:

我应该在哪里添加这个编辑?我已经创建了一个名为 Date 的 boundfield 列。 只需添加一列,因为您已将文件名列添加到数据表中,以便为每个文件绑定创建时间。要绑定每个文件的创建时间,请使用 File.GetCteationTime(在传递文件路径时传递文件路径以检索文件名) 方法并与循环内的相应列绑定。【参考方案2】:

在UpLoadFile控件中,无法通过

检索文件创建日期

正在上传文件,所以可以将当前时间设置为文件上传时间。

代码:

protected void Button2_Click(object sender, EventArgs e)
        
            if (FileUpload1.HasFile)
            
                string fileExtenstion = System.IO.Path.GetExtension(FileUpload1.FileName);
                if (fileExtenstion.ToLower() != ".doc" && fileExtenstion.ToLower() != ".docx")
                
                    Label1.Text = "Only files of docx extenstion are allowed";
                    Label1.ForeColor = System.Drawing.Color.Red;
                
                else
                
                    string date = DateTime.Now.ToString("h:mm:ss tt");
                    FileUpload1.SaveAs(Server.MapPath("~/uploads/" + FileUpload1.FileName));
                    Label1.Text = "File Uploaded successfully";
                    Label1.ForeColor = System.Drawing.Color.Green;
                    string[] filepaths = Directory.GetFiles(Server.MapPath("~/uploads/"));

                    DataTable dt = new DataTable();
                    DataRow dr;
                    dt.Columns.Add("filenames");
                    dt.Columns.Add("date");
                    foreach (string filepath in filepaths)
                    
                        dr = dt.NewRow();
                        dr["filenames"] = Path.GetFileName(filepath).ToString();
                        dr["date"] = date;
                        dt.Rows.Add(dr);
                    
                    GridView1.DataSource = dt;
                    GridView1.DataBind();
                
            
            else
            
                Label1.Text = "Please upload the file";
                Label1.ForeColor = System.Drawing.Color.Red;
            
        

结果:

【讨论】:

谢谢。非常感谢您的帮助!

以上是关于如何使用 C# asp.net 在 GridView 中添加文件上传日期和/或时间?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用c#在asp.net网页中显示C程序错误

如何使用 c# 在 asp.net 中隐藏和显示警报

如何在 c# asp.net 中使用完整的日历

如何使用 C# 和 ASP.NET 从网页中截取 div?

如何使用 c# asp.net 从 url 获取数据?

如何使用 HttpClient 在 ASP.Net C# 中禁用分块传输编码