上传文件Upload

Upload FileUpload

我正在处理一个项目,我必须在其中上传 .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 元素并选择文件 WITHOUT WITHOUT CLICKING ON A BUTTON 时执行某些操作。我一直在搜索,但没有找到如何动态检测此操作。 asp:fileUpload 没有事件,例如 OnUploading.

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

您想检测文件何时分配给上传,只需使用 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 api (https://developer.mozilla.org/en-US/docs/Web/API/FileReader) 读取文件。

并使用 .files 访问文件:

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

您可以向页面添加一个虚拟 LinkBut​​ton 并将其留空,但给它一个 OnClick,您将在其中处理文件。

<asp:FileUpload ID="FileUpload1" runat="server" accept="image/*" />

<asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click"></asp:LinkButton>

然后在后面的代码中将 onchange 触发器添加到将执行 LinkBut​​ton1 的回发的 FileUpload 控件。

protected void Page_Load(object sender, EventArgs e)
{
    FileUpload1.Attributes.Add("onchange", "__doPostBack('" + LinkButton1.UniqueID + "','')");
}

PS 不要将 FileUpload 控件放在 UpdatePanel 中。

请看thislink

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