2011-01-05 62 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