簡體   English   中英

ASP.NET從動態添加的FileUpload控件保存文件

[英]ASP.NET save files from dynamically added FileUpload controls

我正在構建一個ASP.NET UserControl,該網站的用戶可以一次上傳幾張圖片。 我通過讓用戶輸入所需的FileUpload控件的數量,然后將它們從C#動態添加到asp:Panel控件中,以老式的方式進行操作。

在此過程中,當用戶單擊“保存”按鈕時,不會存儲FileUpload中的值/文件。 我該怎么解決這個問題?

我的用於指定所需FileUpload控件數量的代碼:

protected void btnSubmitImageAmount_Click(object sender, EventArgs e)
{
    int amountOfControls = Convert.ToInt32(txtImageAmount.Text);

    for (int i = 0; i < amountOfControls; i++)
    {
        FileUpload fUl = new FileUpload();
        Label lblLineBreak = new Label();
        lblLineBreak.Text = "<br />";
        fUl.ID = i.ToString();
        fUl.Visible = true;
        pnlUploadControls.Controls.Add(fUl);
        pnlUploadControls.Controls.Add(lblLineBreak);
    }
}

保存按鈕的代碼:

protected void btnCreateStory_Click(object sender, EventArgs e)
{
    List<Media> images = new List<Media>();

    foreach (Control ctrl in pnlUploadControls.Controls)
    {
        if (ctrl is FileUpload)
        {
           FileUpload fUl = (FileUpload)ctrl;
           Media media = UmbracoSave(fUl, storydDoc.Id);
           if (media != null)
           {
               images.Add(media);
           }
        }
    }
}

任何人都知道如何解決這個問題? :)

提前致謝!

您需要在每個回發中重新創建動態控件,否則它們將不再存在。

我建議您閱讀文章和學習更多有關頁面生命周期

使用動態 FileUpload時,請記住手動設置Page.Form.Enctype =“ multipart / form-data”; 它是一種編碼類型,允許通過POST發送文件-有關更多信息,請參見enctype ='multipart / form-data'是什么意思?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM