5

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

@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

4 回答 4

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>
于 2012-10-20T19:38:42.413 回答
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);
        }
    }

}
于 2012-10-22T12:34:13.493 回答
0

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

保存上传的文件

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

于 2012-10-20T19:28:43.400 回答
0

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

如果您可以在此行中调用 javascript 函数:

@Microsoft.Web.Helpers.FileUpload.GetHtml(initialNumberOfFiles: 1, includeFormTag: false, uploadText: "Upload File",allowMoreFilesToBeAdded:false)
于 2012-10-20T19:58:33.770 回答