在asp.net中动态创建文件上载控件并读取文件数据

时间:2018-01-31 16:23:10

标签: javascript c# asp.net file-upload

我正在尝试开发asp.net Web应用程序。我想动态创建文件上传控件(即,当我点击“添加按钮”系统时必须在页面中生成新的文件上传控件)它必须是部分渲染它不应该重新加载。

UI:

<form name="aspnetForm" method="post" action="FileUpload.aspx" id="aspnetForm" enctype="multipart/form-data">
<asp:UpdatePanel ID="addFileUploadUpdatePanel" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="AddFileUploadButton" />
</Triggers>
<ContentTemplate>
<asp:Label ID="FileUploadLabel" Text="Choose File:" runat="server" Width="155px"></asp:Label>
<asp:FileUpload ID="InvoiceMiscFileUpload" runat="server" />
<asp:Button ID="AddFileUploadButton" CssClass="wp_button" Text="Add" runat="server" OnClientClick="addFileUpload();" OnClick="AddFileUploadButton_Click"/>
<div id="MultipleFileUploadDiv"></div>
</ContentTemplate>
</asp:UpdatePanel>
</form>

我尝试使用JavaScript创建

var divElement = document.createElement('DIV');
var upload = document.createElement('input');
upload.setAttribute("type", "file");
upload.setAttribute("id", "file" + count);
upload.setAttribute("name","dynamicUploadFileUpload" + count);
upload.setAttribute("runat", "server");        document.getElementById("MultipleFileUploadDiv").appendChild(divElement);
document.getElementById("MultipleFileUploadDiv").appendChild(upload); 

它完美地在UI中附加Control。

在后端(.cs)文件中 当我尝试读取文件计数时,我无法获得准确的文件计数。

Request.Files.Count

总是扔“0”,我无法得到解决方案。

我不知道如何从动态创建的控件中读取上传的文件数据。

提前致谢:)

1 个答案:

答案 0 :(得分:0)

而不是通过Javascript动态创建文件控件 - 将控件保留在页面上并隐藏它。当你想显示控件时,只需取消隐藏(显示)文件控件。这将解决问题。