如何使用 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 中添加文件上传日期和/或时间?的主要内容,如果未能解决你的问题,请参考以下文章