上载FileUpload

时间:2018-08-21 11:03:17

标签: c# asp.net detect

我正在一个项目中,我必须上载.txt个文件。我正在使用asp.net FileUpload。这是一段代码:

<div class="custom-file">
    <asp:FileUpload ID="inputFileTXT" CssClass="custom-file-input" runat="server" />
    <label id="lblFileName" runat="server" class="custom-file-label" for="inputFileTXT">Elegir archivo</label>
</div>``

我正在使用MDBootstrap中的样式。

问题是,当用户单击asp:fileUpload元素并选择文件时,我想做的事情不单击按钮。我一直在搜索,但没有找到如何动态检测此操作的方法。 asp:fileUpload没有诸如OnUploading之类的事件。

PD:我尝试使用UpdatePanel,但是当它进行回发时,似乎上载的文件消失了。也许是这样,但我无法使它起作用。

3 个答案:

答案 0 :(得分:0)

您只想使用change事件来检测何时将文件分配给上传。

jQuery解决方案:

$('#inputFileTXT').on('change', function(){
    //do stuff
});

javascript解决方案:

<asp:FileUpload ID="inputFileTXT" CssClass="custom-file-input" runat="server" onchange="doStuff(this);" />

function doStuff(control){
    //do stuff
} 

然后您可以使用FileReader apihttps://developer.mozilla.org/en-US/docs/Web/API/FileReader)来读取文件。

并使用.files访问文件:

var files = $('#inputFileTxt').files;

答案 1 :(得分:0)

您可以在页面上添加一个虚拟的LinkBut​​ton并将其保留为空,但是给它一个UserDefaults,您可以在其中处理文件。

OnClick

然后在后面的代码中将<asp:FileUpload ID="FileUpload1" runat="server" accept="image/*" /> <asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click"></asp:LinkButton> 触发器添加到FileUpload控件,该控件将执行LinkBut​​ton1的PostBack。

onchange

PS不会在UpdatePanel中放置FileUpload控件。

答案 2 :(得分:0)

请查看this链接

您应该在FileUpload1中获得文件详细信息(以您的情况为fileUpload控件ID:inputFileTXT)。