我有一個表單,用戶可以從中添加一個房產列表。除了用戶必須輸入的數據之外,用戶還可以上傳一些圖像。我使用HTML5多重屬性來允許用戶一次上傳多個文件。上傳多個文件 - MVC ..有一個總文件大小限制?
由於某種原因,當我上傳一張圖片時,我總是會觸發HttpPost添加方法。但是,當我嘗試上傳多個圖像時,該方法不會觸發。直到現在我沒有得到任何錯誤,所以我不知道我的實現有什麼問題。
HTML
@using (Html.BeginForm("AddProperty", "User", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<fieldset>
<legend>Property</legend>
<div class="editor-label">
Title
</div>
<div class="editor-field">
<input type="text" name="title" />
</div>
<div class="editor-label">
Description
</div>
<div class="editor-field">
<input type="text" name="desc" />
</div>
@* ... more input fields... *@
<div class="editor-label">
Images
</div>
<div class="editor-field">
<input type="file" multiple="multiple" name="file" />
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
控制器
[HttpPost]
public ActionResult AddProperty(FormCollection form, IEnumerable<HttpPostedFileBase> file)
{
Property p = new Property();
p.Title = form["title"];
p.Description = form["desc"];
// ... setting Property fields
new PropertiesBL().AddProperty(p);
for (int i = 0; i < file.Count(); i++)
{
// ... loop and save uploaded file(s)
}
}
任何幫助,將不勝感激。
編輯 - 進一步測試
爲了測試我創建了一個新的視圖只包含文件上傳表單文件上傳。我試過上傳不同的文件類型。我注意到,當上傳例如10個文檔時,Upload方法被激發。但是,當試圖上傳3(大)圖像時,它不會觸發。我在想,上傳的字節總數有一些限制......我不確定這是否合理。
簡單測試
<form method="post" action="/Test/Upload" enctype="multipart/form-data">
<input type="file" multiple="multiple" name="images" />
<input type="submit" value="Upload" />
</form>
[HttpPost]
public ActionResult Upload(IEnumerable<HttpPostedFileBase> images)
{
return RedirectToAction("Index");
}
我也試過單獨上傳多個文件。當我嘗試上傳3張大圖片(每張圖片大約2 MB)時,該方法不會觸發。我幾乎可以肯定,這是一個與總最大文件大小有關的問題。
<form method="post" action="/Test/Upload" enctype="multipart/form-data">
<input type="file" name="image_1" />
<input type="file" name="image_2" />
<input type="file" name="image_3" />
<input type="submit" value="Upload" />
</form>