ASP.. NET MVC 4文件上传与触发器|| Html.BeginForm
本文关键字:触发器 Html BeginForm NET MVC 文件 ASP | 更新日期: 2023-09-27 18:07:52
我有一个上传多个文件的工作代码,我对此非常满意,但我想添加一个"上传触发器",这样我就可以从不同的目录上传文件,我怎么能做到呢?
我使用MVC 4,这是我的代码:(关于文件上传)
指数:
@using (Html.BeginForm(null, null, FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<table>
<tr>
<td>File:</td>
<td><input type="file" name="Files" id="Files" multiple /></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="submit" value="Filter" /></td>
</tr>
</table>
}
控制器:
public ActionResult Index(Scan scan)
{
if (Request.Files.Count > 0)
{
return RedirectToAction("Index");
}
savefile....
......
return RedirectToAction("Index");
}
我想能够多次选择文件,并将它们添加到一个列表,用户可以看到他选择的文件,直到现在,当用户准备好了,他按下触发按钮"上传",所有的文件将发送在一个HTTP POST到控制器一样,这是可能的吗?
我是web编程新手,所以js, jquery, ajax不是我的强项:)
p。S我试着用一堆东西来实现我想要的:"fine-uploader", "Uploadify", "jQuery File Upload"我一事无成,这与我知识的缺乏有关
您可以使用AJAX工具包进行多文件上传。它应该相对容易实现,并且他们有安装说明。
该控件允许您上传存储在服务器临时目录中的多个文件。当最终提交表单时,您可以控制上传文件。
以下是实现AJAX工具包的步骤:1)使用NuGet和添加Ajax工具包控件到您的项目;如果你没有nuget,下载它并添加到你的项目,通过这里的链接:ajaxcontroltoolkit.codeplex.com/
2)在你的项目中有了它之后,在你的页面 中执行以下几行<asp:AjaxFileUpload ID="AjaxFileUpload1" runat="server" AllowedFileTypes="jpg,jpeg,png,gif" MaximumNumberOfFiles="10" OnUploadComplete="File_Upload" Width="500px" />
在后面的代码中,处理这里的文件
protected void File_Upload(object sender, AjaxFileUploadEventArgs e) { string filename = e.FileName; string strDestPath = Server.MapPath("~/Documents/"); AjaxFileUpload1.SaveAs(@strDestPath + filename); }
一旦你到达那里,你就可以处理你的文件上传。
可以在这里找到一个很好的演示:http://www.dotnetfox.com/articles/ajax - fileupload -或-多- fileupload - -进展的例子- - asp -网- 1081. aspx