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>&nbsp;</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"我一事无成,这与我知识的缺乏有关

ASP.. NET MVC 4文件上传与触发器|| Html.BeginForm

您可以使用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