簡體   English   中英

帶觸發器的ASP.NET MVC 4文件上載|| Html.BeginForm

[英]ASP.NET MVC 4 File Upload With Trigger || Html.BeginForm

我有一個工作代碼,可以上傳多個我很滿意的文件,但是我想添加一個“上傳觸發器”,以便可以從不同目錄上傳文件,我該怎么辦?

我正在使用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到控制器的方式與以前相同,可以嗎?

我是網絡編程的新手,所以js,jquery,ajax並不是我的強項:)

PS:我試圖用一堆東西來實現我想要的東西:“ fine-uploader”,“ Uploadify”,“ jQuery File Upload”,但是我什么都沒做,由於缺乏知識,它變得非常復雜

您可以將AJAX工具包用於多個文件上傳。 它應該相對容易實現,並且有指導您安裝它。

該控件允許您上載存儲在服務器temp目錄中的多個文件。 最終提交表單后,您就可以控制上傳文件了。

以下是實現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" />

3)在后面的代碼中,在此處處理文件

 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-or-multiple-fileupload-with-progress-example-in-Asp-Net-1081.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM