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

时间:2013-04-06 13:36:33

标签: 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控件的按钮会执行附加按钮的工作。

1 个答案:

答案 0 :(得分:4)

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

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

<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>

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

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