【发布时间】:2011-06-03 20:29:00
【问题描述】:
我正在使用 Asp.net 并且要求指定我使用 html 输入将文件发布到服务器而不是 asp:fileupload。[原因:添加更多类似于 CPanel 文件管理器的 html 输入文件控件。(即)单击链接添加另一个用户可以从中选择另一个文件的文件输入*。但是当我发回请求文件集合时总是空的。* 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);}}
validate(this) 是一个在客户端验证文件类型的函数。当验证成功时,添加更多文件输入的链接被启用。有人可以对此有所了解吗?
【问题讨论】:
-
这个表单是否在 ASP.NET 页面中创建的普通表单标记内?这意味着您有一个围绕上述表单的 。
-
没有此页面在内容占位符内[这意味着我在母版页的子页面上]
-
您的母版页上可能有一个表单标签。如果你查看网页的 html 源代码,你会看到两个表单标签吗?
-
是的,它有 2 个表单标签。形成母版页和子页。母版页具有正确连接的属性。我应该从子页面中删除一个吗?
标签: asp.net validation post file input