为了账号安全,请及时绑定邮箱和手机立即绑定

文件上传不读取正在上传的文件

文件上传不读取正在上传的文件

Go
吃鸡游戏 2021-10-09 16:18:39
我正在尝试使用文件上传上传 excel 文件,但是每当我执行“If (FileUpload.HasFile)”时,它总是返回 false,即使我已经选择了一个文件。下面是我点击上传按钮时的代码。(已编辑:当我上传文件时,if 语句最终变为真 另一个问题是此错误消息显示“SaveAs 方法配置为需要有根路径,而路径 '~/Datas/Book1.xlsx' 没有根。” )块引用  protected void btnUpload_Click(object sender, EventArgs e){        if (FileUpload1.HasFile)        {            try            {            FileUpload1.SaveAs("~/Datas/" + FileUpload1.FileName);            Label1.Text = "File name: " +                FileUpload1.PostedFile.FileName + "<br>" +                FileUpload1.PostedFile.ContentLength + " kb<br>" +                "Content type: " +                FileUpload1.PostedFile.ContentType;            string FileName = FileUpload1.FileName;            string path = string.Concat(Server.MapPath("~/Datas/" + FileUpload1.FileName));            FileUpload1.PostedFile.SaveAs(path);            OleDbConnection OleDbcon = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=Excel 12.0;");            OleDbCommand cmd = new OleDbCommand("SELECT * FROM [Sheet1$]", OleDbcon);            OleDbDataAdapter objAdapter1 = new OleDbDataAdapter(cmd);            DataSet ds = new DataSet();            //Dt.Clear(); ds.Clear();            objAdapter1.Fill(ds);            DataTable Dt = new DataTable();            Dt = ds.Tables[0];            DataColumn dc = Dt.Columns.Add("Ser", typeof(Int32));            int count = 0;            foreach (DataRow item in Dt.Rows)            {                count++;                item["Ser"] = count;            }            TraineeGrid.DataSource = Dt;            TraineeGrid.DataBind();        }             catch (Exception ex)           {                 Label1.Text = "ERROR: " + ex.Message.ToString();           }       }        else        {            Label1.Text = "You have not specified a file.";        }    }我有一张由按钮组成的表格,这是文件上传和上传按钮所在的位置
查看完整描述

2 回答

?
交互式爱情

TA贡献1712条经验 获得超3个赞

由于某些安全原因,FileUpload 控件在回发期间不会保留该值。


一种方法是为您的上传按钮设置触发器


<asp:ScriptManager ID="ScriptManager1" runat="server">

</asp:ScriptManager>


 <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">

      <ContentTemplate>

      <asp:FileUpload ID="fileUpload" runat="server"></asp:FileUpload>

      <asp:Button ID="btnUpload" runat="server" OnClick="btnUpload_Click" />

      </ContentTemplate>

      <Triggers>

          <asp:PostBackTrigger ControlID="btnUpload"  />

      </Triggers>

 </asp:UpdatePanel>


 protected void btnUpload_Click(object sender, EventArgs e)

     {

        if (fileUpload1.HasFile)

        {                

            fileUpload1.SaveAs("C:\\" + fileupload1.FileName);

        }

     }


查看完整回答
反对 回复 2021-10-09
?
白衣非少年

TA贡献1155条经验 获得超0个赞

我已经尝试过,我能够得到文件。


<asp:FileUpload ID="FileUpload1" runat="server" />

<asp:Button ID="btnok" runat="server" Text="Ok"  OnClick="btnok_Click"/>

下面的事件是按钮单击。我可以知道您在哪个地方遇到问题。


 protected void btnok_Click(object sender, EventArgs e)

   {

     if(FileUpload1.HasFile)

      {

        var val=FileUpload1.PostedFile;

      }

   }


查看完整回答
反对 回复 2021-10-09

添加回答

代码语言

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信