c# - 在转发器中处理文件上传

标签 c# asp.net .net linq

所以我的转发器中有我的文件上传

  <asp:Content ID="Content3" ContentPlaceHolderID="content" Runat="Server">
<asp:Repeater ID="rptVrijstellingen" runat="server">

        <HeaderTemplate></HeaderTemplate>
        <ItemTemplate>
        <h2><%# Eval("tblExternVak.ExternvakNaam") %></h2>
        <h4>Selecteer een bestand om te uploaden:</h4>
       Gelieve het bestand de naam te geven van het overeenkomstige vak om de verwerking 
           vlot te laten verlopen.

           <br /><br />  <br />
           <asp:FileUpload id="FileUpload1"                 
           runat="server">
           </asp:FileUpload>
       <br /><br />
       <hr />
       <br />
         <br />
        <asp:Button id="UploadButton" 
           Text="Upload file"
           OnClick="UploadButton_Click"
           runat="server">
       </asp:Button>     
       <br />    
    <br />
            </ItemTemplate>
        <SeparatorTemplate><hr /></SeparatorTemplate>
        </asp:Repeater>    
       <asp:CheckBox id="CBupload" runat="server" />
       <asp:Label id="lblUpload" runat="server"> Geleverd aan Mevrouw Van Orlé</asp:Label>
       <asp:Label id="UploadStatusLabel" runat="server" ForeColor="Red"></asp:Label>   
</asp:Content>

我想从我的类文件中找到它

   if (FileUpload1.HasFile)
    {
        try
        {

            String fileName = FileUpload1.FileName;
            savePath += fileName;
            FileUpload1.SaveAs(Server.MapPath(savePath));
            tblBijlage s = new tblBijlage();
            s.bijlageTitel = fileName;
            s.bijlageURL = savePath;
            s.bijlageType = "1";
            s.fk_externvakID = 2;
            BLLstudent BLLstudent = new BLLstudent();
            BLLstudent.insertFile(s);
        }

        catch (Exception ex)
        {
            UploadStatusLabel.Text = ex.Message;
        }
    }
    else
    {
      UploadStatusLabel.Text = "Gelieve een bestand te kiezen";
    }
    }
}

问题是它没有在转发器中找到 fileupload1 和任何其他声明的东西,任何人都可以给我一个关于如何在转发器中处理上传的解决方案吗? (我用我的 page_load 中的数据填充中继器,所以它在加载时存在,所以我知道这不是问题)

提前谢谢你:)

最佳答案

您必须迭代 Repeater 控件的 Items 集合并使用 FindControl 方法获取 FileUpload1 对象的引用。

foreach (RepeaterItem item in rptVrijstellingen.Items)
 {
    FileUpload file=(FileUpload)item.FindControl("FileUpload1");
    String fileName = file.FileName;
    FileUpload1.SaveAs(Server.MapPath(savePath + fileName));
    ....
  }

关于c# - 在转发器中处理文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8487984/

相关文章:

c# - 排序列表和并行 Linq 查询

c# - 将转义字符串转换为字节数组或流; C#

asp.net - ASP :Menu and css selected item

c# - DotNetZip 从其他 zip 的子集创建 zip

c# - 单个 PrincipalContext 能否在应用程序的生命周期内重复使用?

c# - '='字符,十六进制值0x3D,不能包含在名称中

c# - 使用路由属性进行 Web API 版本控制时如何获取 Controller 名称

c# - 当我们使用时线程被中止

asp.net - 如何编写移动/删除 mvc 路由 "forever"的代码

c# - 为什么 List<int> 不是 IEnumerable<ValueType>?