c# - 如何让FileUpload控制点击 'Browse'后立即上传文件?

标签 c# asp.net file-upload

到目前为止,我一直在使用 2 个控件(FileUpload 和附加按钮)。 在 fileUpload 控件中选择文件后,用户必须按保存按钮接受他的选择。

这是按钮的代码:

    protected void Button1_Click(object sender, EventArgs e)
    {
        if (FileUpload1.HasFile)
        {
            FileUpload1.SaveAs(Server.MapPath("~/file.jpg"));
            Label1.Text = Server.MapPath("~/file.jpg");
            Image1.ImageUrl = "file.jpg";
        }
    }

我想知道是否有一种方法可以避免使用该按钮,这样 FileUpload 控件的按钮就可以完成附加按钮的工作。

最佳答案

FileUpload控件呈现 <input type="file>在浏览器中。您可以使用 javascript change 触发上传的事件。

首先确保你有一个 loadbody 中注册的事件处理程序你的页面:

<body onload="body_onload()">

并将此代码添加到您的事件处理程序中:

<script type="text/javascript">
    function body_onload()
    {
        ...

        $get('<%=FileUpload.ClientID%>').onchange = function() { 
            $get('<%=this.Page.Form.ClientID%>').submit(); 
        };
    }
</script>

或者要使用纯 jQuery 执行此操作,请将其放在 head 中你的页面(如果你还没有包含 jQuery):

<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>

然后使用此代码绑定(bind)到事件(将 #fileUpload1#form1 分别替换为您的 FileUploadForm 元素的 ID):

<script type="text/javascript">
    $(document).ready(function() {
        $("#fileUpload1").change(function() {
            $("#form1").submit();
        });
    });
</script>

关于c# - 如何让FileUpload控制点击 'Browse'后立即上传文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15851619/

相关文章:

c# - 使用 NEST Field Boosting 的 Elasticsearch

asp.net - Entity Framework 核心或普通 Sql 命令对象

c# - 在gridview中格式化十进制值

jQuery 缩略图悬停弹出窗口

php - Codeigniter:MP4 视频上传不工作

ios - 为什么ios上传文件时没有调用nodejs multer上的onParseEnd回调?

c# - 如何将 PSCredential 对象从 C# 代码传递到 Powershell 函数

c# - 将一维数组拆分为 2 个数组

c# - 向radiobuttonlist的单选按钮添加属性

node.js - 重复的 http post 请求被延迟