我有以下代码用于在我的网站上传文件:
@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" />
}
我希望能够在用户从“浏览”按钮中选择文件后自动发布。目前,每次用户选择上传文件时,用户都必须点击上传,无论如何要自动完成此过程?
答案 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)