如何在选择文件后自动上传文件

时间:2012-10-20 19:20:00

标签: c# javascript asp.net asp.net-mvc

我有以下代码用于在我的网站上传文件:

@using (Html.BeginForm("UploadProfileImage", "Member", FormMethod.Post, new { @encType = "multipart/form-data" }))
   {

     @Microsoft.Web.Helpers.FileUpload.GetHtml(initialNumberOfFiles: 1, includeFormTag: false, uploadText: "Upload File",allowMoreFilesToBeAdded:false)
    <span class="success">@ViewData["SuccessMessage"]</span>
     <input class="button" type="submit" name="submit" value="Upload" />         

}

我希望能够在用户从“浏览”按钮中选择文件后自动发布。目前,每次用户选择上传文件时,用户都必须点击上传,无论如何要自动完成此过程?

4 个答案:

答案 0 :(得分:3)

文件上传控件支持onchange事件。希望可以用来触发上传

<form name="upload" action="uploadfile.aspx" method="POST">
    <input name="myfile" type="file" onchange="UploadFile()" />
</form>

<script>
   function UploadFile()
   {
      //do validation here
      document.forms['upload'].submit();
   }
</script>

答案 1 :(得分:2)

ASP:

<input type="file" onchange="this.form.submit();" name="fUpload"/>

代码隐藏:

protected void Page_Load(object sender, EventArgs e)
{
    if (IsPostBack)
    {
        System.Web.HttpPostedFile file = Request.Files["fUpload"];
        if (file != null && file.ContentLength > 0)
        {
            file.SaveAs(@"C:\dir\"+System.IO.Path.GetFileName(file.FileName));
        }
    }

}

asp:FileUpload而不是输入:

ASP:

<asp:FileUpload runat="server" onchange="this.form.submit();" ID="fuFile"/>

代码隐藏:

protected void Page_Load(object sender, EventArgs e)
{
    if (IsPostBack)
    {
        if (fuFile.PostedFile.FileName != string.Empty  && fuFile.PostedFile.ContentLength > 0)
        {
            fuFile.PostedFile.SaveAs(@"C:\dir\" + fuFile.FileName);
        }
    }

}

答案 2 :(得分:0)

FileUpload 不支持任何类型的自动将所选文件上传到服务器。您必须提供某种机制 - 请参阅 MSDN

  

保存上传的文件

     

FileUpload控件不会自动将文件保存到   用户选择要上载的文件后的服务器。 你必须明确   提供允许用户提交的控件或机制   指定文件。例如,您可以为用户提供一个按钮   单击以上载文件。您编写的用于保存的代码   指定的文件应调用SaveAs方法,该方法保存内容   一个文件到服务器上的指定路径。通常,SaveAs   在事件处理方法中为引发的事件调用方法   回到服务器的帖子。 ...

答案 3 :(得分:0)

我没有使用Microsoft.web库,但是如果你可以在文件上传后自动调用java脚本函数,那么你也可以实现它。

如果您可以在此行中调用javascript功能:

@Microsoft.Web.Helpers.FileUpload.GetHtml(initialNumberOfFiles: 1, includeFormTag: false, uploadText: "Upload File",allowMoreFilesToBeAdded:false)