2014-12-05 39 views
-1

下午好,asp.net mvc +多個文件上傳帶標題和說明

我對ASP.NET MVC很新。我的要求是使用MVC創建一個小型Web應用程序,它可以上傳多個文件,其描述和標題的描述爲。我在網上發現了很多關於單個或多個文件上傳的文章,但是仍然無法找到那些像我的要求那樣說話的人。

enter image description here

中的描述和文件選擇塊可以具有多達用戶之一。他們可以通過點擊單個上傳按鈕來上傳多個文件。

我確實需要您的專業知識來幫助我。 最好的問候,

Veasna

+1

怎麼樣你告訴我們你嘗試過什麼? – 2014-12-05 13:00:59

回答

0

我不認爲這是完全是一個MVC的問題。

你所需要的就是發送形式誰將會發送多個文件,誰也將派相關聯的每個文件(在這種情況下,每個文件的說明)的數據。

事實上,隨着多形式的數據,您可以發送此類信息,但是,以往的經驗告訴我,剛剛經歷了多形式上傳通常會很麻煩多個文件。

如果你的目標用戶預計將使用有些現代瀏覽器,我建議使用HTML5的JavaScript文件API,這是非常有用和強大。

您可以使用客戶端代碼來識別你的用戶是選擇哪些文件,其中的描述值的分配到每一個文件,並建立一個JSON對象的所有數據。

一旦建成了數據包,您可以將其發送到您的服務器通過AJAX調用。 在控制器上,您可以執行一項操作來管理此JSON數據包並將其以您的業務模型定義的方式進行保存。

您有JavaScript文件API這裏的外觀極好的出發文章:http://www.html5rocks.com/en/tutorials/file/dndfiles/

希望這有助於。

0

根據你的描述,你可以通過下面的鏈接,供您參考: - 與它

Multiple file upload with titles

也有一些代碼。

protected void SaveButton_Click(object sender, EventArgs e) 
    { 
     foreach (GridViewRow row in ImagesGrid.Rows) 
     { 
      var title = row.FindControl("txtTitle") as TextBox; 
      var description = row.FindControl("txtDescription") as TextBox; 
      var imageFile = row.FindControl("flUpload") as FileUpload; 
     } 
    } 
    protected void btnEnter_Click(object sender, EventArgs e) 
    { 
     if (txtImages.Text != "") 
     { 
      pnltwo.Visible= true; 
     } 
     var imageCount = Convert.ToInt32(txtImages.Text); 
     var list = new List<string>(imageCount); 
     list.AddRange(Enumerable.Repeat(String.Empty, imageCount)); 
     ImagesGrid.DataSource = list; 
     ImagesGrid.DataBind(); 

    } 

ASPX

<asp:Panel ID="pnlone" runat="server"> 

         <asp:Label ID="lbltext" runat="server" Text="Enter the no of images to upload"></asp:Label> 
          <asp:TextBox ID="txtImages" CssClass="form-control" runat="server"></asp:TextBox><br /> 
           <asp:RequiredFieldValidator ID="reqtxt" runat="server" CssClass="error-class" ControlToValidate="txtImages" ErrorMessage="Please enter value"></asp:RequiredFieldValidator> 
          <asp:Button ID="btnEnter" runat="server" CssClass="btn btn-prm" CausesValidation="true" OnClick="btnEnter_Click" Width="75px" Text="Upload" /> 
         </asp:Panel> 

         <asp:Panel ID="pnltwo" runat="server"> 

          <asp:GridView ID="ImagesGrid" runat="server" AutoGenerateColumns="false"> 
           <Columns> 
            <asp:TemplateField HeaderText="Sl No"> 
             <ItemTemplate><%# Container.DisplayIndex + 1 %></ItemTemplate> 
            </asp:TemplateField> 
            <asp:TemplateField HeaderText="Title"> 
             <ItemTemplate> 
              <asp:TextBox ID="txtTitle" runat="server" /> 
             </ItemTemplate> 
            </asp:TemplateField> 
            <asp:TemplateField HeaderText="Description"> 
             <ItemTemplate> 
              <asp:TextBox ID="txtDescription" runat="server" /> 
             </ItemTemplate> 
            </asp:TemplateField> 
            <asp:TemplateField HeaderText="File"> 
             <ItemTemplate> 
              <asp:FileUpload ID="flUpload" runat="server" /> 
             </ItemTemplate> 
            </asp:TemplateField> 
           </Columns> 
          </asp:GridView> 
          <br /> 
          <asp:Button ID="SaveButton" Text="Save" CssClass="btn btn-prm" CausesValidation="false" runat="server" OnClick="SaveButton_Click" /> 
         </asp:Panel>