2011-01-05 60 views
0

我正在使用Asp.net和要求指定我使用html輸入文件發佈到服務器,而不是asp:fileupload。[原因:添加更多的HTML輸入文件控制類似於CPanel文件管理器。(即)點擊鏈接添加另一個文件輸入,用戶可以從中選擇另一個文件* 。但是,當我回發請求文件集合時總是空的。 * HTML表單:多文件輸入

<form method="post" enctype="multipart/form-data" action="documents.aspx"> 
<div> 
    <input type="file" name="attachment" id="attachment" onchange="validate(this)" /> 
    <span class="none">Filename should be within (1-25) letters long. Can Contain only letters 
     & numbers</span> 
    <div id="moreUploads"> 
    </div> 
    <div id="moreUploadsLink" style="display: none;"> 
     <a href="javascript:addFileInput();">Attach another File</a></div> 
     <input type="submit" id="btnSubmit" /> 
</div> 
</form> 

的Javascript:

var upload_number = 2;function addFileInput() { 
try { 
    var fileUpload = document.getElementById("attachment"); 
    var elemSpan = nextElement(fileUpload).cloneNode(true); 
    var elemDiv = document.getElementById("moreUploads"); 
    var d = document.createElement("div"); 
    var file = document.createElement("input"); 
    file.setAttribute("type", "file"); 
    file.setAttribute("id", "attachment" + upload_number); 
    file.setAttribute("onchange", "validate(this)"); 
    d.appendChild(file); 
    d.appendChild(elemSpan); 
    elemDiv.appendChild(d); 
    upload_number++; 
} catch (err) { alert(err);}} 

的驗證(這)是在client.When驗證驗證文件類型的函數成功,則添加更多的文件輸入鏈接啓用。有人可以對此有所瞭解。

+0

這是INSIDE在ASP.NET頁面中創建的標準窗體標籤嗎?這意味着你有一個

,就是上面的表格。 – patmortech 2011-01-05 09:09:37

+0

沒有此頁面在內容廣場持有人[這意味着我在主頁上的子頁面] – Deeptechtons 2011-01-05 10:25:23

+0

您的主頁面上可能有一個表格標籤。如果您查看網頁的html源代碼,您是否看到兩個表單標籤? – patmortech 2011-01-05 11:18:23

回答

1

我認爲你需要設置輸入的name屬性。補充一點:

file.setAttribute("name", "attachment" + upload_number); 

更新

你似乎有另外一個問題是,你正在試圖窩內另一個表單標籤(因爲你的母版通常會在它<form runat="server">的話)。您的上傳在這種情況下不起作用,因爲主窗體沒有適當的enctype值。通常情況下,如果使用asp.net FileUpload控件,它會自動在主窗體標籤上爲您設置適當的enctype爲multipart/form-data。但是,由於您只使用純html輸入,因此asp.net不知道您正在嘗試上載文件,因此不會爲您設置enctype。

所以,你需要做的是:

一)擺脫你有上述表單標籤的(並不需要它)

二)在你的代碼隱藏這個頁面,把下面的在page_init事件處理程序中的行:

this.Form.Enctype = "multipart/form-data"; 
+0

不是也沒有工作。我希望我解釋好我的要求。 – Deeptechtons 2011-01-05 08:36:20

+0

嘗試我在更新中添加的內容。 – patmortech 2011-01-05 12:43:12

+0

我的母版頁上的表單沒有enctype。這固定了我的宇宙:)非常感謝 – 2012-09-13 08:29:15