如何在单击"浏览"后立即生成FileUpload控件上传文件?

Pat*_*ryk 5 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";
        }
    }
Run Code Online (Sandbox Code Playgroud)

我想知道是否有办法避免使用该按钮,因此FileUpload控件的按钮将执行附加按钮的工作.

p.s*_*w.g 4

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

首先确保您的页面load中注册了一个事件处理程序body

<body onload="body_onload()">
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

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

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