【问题标题】:FileUpload upload codebehind.FileUpload 上传代码隐藏。
【发布时间】:2012-09-21 01:00:08
【问题描述】:

如何仅使用 FileUpload 代码隐藏上传?我的控件是代码隐藏的,因为我有 Dropdown_SelectedIndexChanged 并且需要生成各种数量的控件。我可以很好地列出控件并将文件和文本附加到txtbox:

        private void SetChildrenCountControls(int total)
        {
          for (int i = 0; i < total; i++)
          {
            var tbBirthDate = new TextBox();
            tbBirthDate.ID = "tbBirthDate_" + (i + 1);
            tbBirthDate.CssClass = "tbSister_input";
            tbBirthDate.EnableViewState = true;

            FileUpload upload = new FileUpload();
            upload.ID = "imgUpload_" + (i + 1);
            upload.CssClass = "tbSister_upload";
            upload.EnableViewState = true;

            ChildrenCountTextPanel.Controls.Add(tbBirthDate);
            ChildrenCountTextPanel.Controls.Add(upload);
          }
       }    

并且可以通过以下方式获取txtbox中输入的文本:

         protected void lbFamilySave_Click(object sender, EventArgs e)
    {
        var countSisters = ChildrenCountTextPanel.Controls.OfType<TextBox>();
        string sisterBirth = string.Empty;
        foreach (var sister in countSisters)
        {
            if (sister.ID.Contains("tbBirthDate_"))
                sisterBirth = sister.Text;
        }
    } 

如何从 FileUpload 控件获取文件?似乎无法使用 FileUpload 完成上述操作。

【问题讨论】:

  • 您需要将FileUpload引用存储为全局变量,在preinit或init上添加控件;当文件上传后发生回发时,控件应该在 PostedFile 属性中包含发布的文件信息。
  • 你试过添加upload.RunAt = "server"吗?

标签: c# asp.net code-behind


【解决方案1】:

在下面的点击事件中,你得到的是文本框而不是文件上传控件

btn_protected void lbFamilySave_Click(object sender, EventArgs e)
{
        var countSisters = ChildrenCountTextPanel.Controls.OfType<TextBox>();

文件上传控件属于这种类型System.Web.UI.WebControls.FileUpload

所以请获取 FileUpload 控件,然后执行以下操作:

if (myFileUpload.HasFile)
{
  string savePath = @"C:\Temp\" + myFileUpload.FileName;

  myFileUpload.SaveAs(savePath);
}

【讨论】:

    【解决方案2】:

    得到它的工作与这个,以为我已经尝试过。显然不够好:)

     var countUploads = ChildrenCountTextPanel.Controls.OfType<FileUpload>();
    
            FileUpload FileUl = new FileUpload();
            foreach (var ul in countUploads)
            {
                if(ul.ID.Contains("imgUpload_"))
                {
                    FileUl = ul;               
                }
            }
    if (FileUl.HasFile)
    {
     ConvertAndSave(FileUl)
     }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多