【问题标题】:Upload FileUpload上传文件上传
【发布时间】:2018-08-22 18:59:06
【问题描述】:

我正在处理一个项目,我必须在其中上传 .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,但是当它进行回发时,上传的文件似乎消失了。也许这就是方法,但我无法让它工作。

【问题讨论】:

  • 也许失去焦点甚至可以成为解决方案?
  • 你想在客户端检测?
  • 是的,我想在客户端检测,在用户选择他的文件的那一刻。

标签: c# asp.net detect


【解决方案1】:

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

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

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

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

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

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

【讨论】:

  • 感谢您的回答。但是,我有点失落。 "FileUpload1.Attributes.Add("onchange", "__doPostBack('" + LinkBut​​ton1.UniqueID + "','')");"我该怎么办?我从未使用过触发器。
  • 你把它添加到页面的Page_Load中。它添加了onchange 事件来触发与点击LinkButton1具有相同结果的点击
【解决方案2】:

您想检测何时将文件分配给上传,只需使用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;

【讨论】:

  • 问题是我需要在 mi asp:fileUpload 中使用 'runat="server"' 因为服务器端有逻辑。我需要加载文件,然后用它制作东西。我阅读了它并用存储在 .txt 文件中的数据填充了一个 datagridview。
  • 好的,所以你想在用户选择一个文件后立即发布到服务器 - 自动而不需要他们点击按钮,对吗?如果是这种情况,那么就按照@VDWWD 在另一个答案中所说的去做。
  • 是的。这个想法是让服务器知道何时上传文件而无需按下按钮。
  • 我已经编辑了我的评论,带有链接按钮的答案将为您完成此操作
【解决方案3】:

请查看this链接

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

【讨论】:

    猜你喜欢
    • 2017-05-17
    • 1970-01-01
    • 2014-07-14
    • 1970-01-01
    • 2015-12-26
    • 1970-01-01
    • 1970-01-01
    • 2019-06-30
    • 2013-06-04
    相关资源
    最近更新 更多