如何在文件上傳到服務器時識別fileupload的輸入(type =「file」)id。在asp.net中的文件上傳器mvc
讓我詳細解釋:
我有我的網頁上有多個文件上傳控制和非同一控制保存在像「Fileupload1」不同的文件夾的文件會保存在「Folder1中」等文件。
如何在文件上傳到服務器時識別fileupload的輸入(type =「file」)id。在asp.net中的文件上傳器mvc
讓我詳細解釋:
我有我的網頁上有多個文件上傳控制和非同一控制保存在像「Fileupload1」不同的文件夾的文件會保存在「Folder1中」等文件。
你不能。發佈表單時發送給服務器的HTML元素的id
是從不。就name
屬性而言,您可能會循環訪問Request.Files集合。在ASP.NET MVC中,使用操作參數更常見。例如:
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="files" id="file1" />
<input type="file" name="files" id="file2" />
<input type="file" name="files" id="file3" />
<input type="submit" value="Upload files" />
</form>
和你的控制器動作:
[HttpPost]
public ActionResult Index(IEnumerable<HttpPostedFileBase> files)
{
foreach (var file in files)
{
if (file.ContentLength > 0)
{
var fileName = Path.GetFileName(file.FileName);
var path = Path.Combine(Server.MapPath("~/App_Data"), fileName);
file.SaveAs(path);
}
}
return RedirectToAction("Index");
}
就這麼簡單。
正如Darian指出的那樣,ID不會被髮送。但name屬性,讓你的文件上傳應該是這樣的:
<input type="file" name="contactsFile" />
這將讓你使用的方法,如
public ActionResult UploadFile(HttpPostedFileBase contactsFile)
在控制器
。
你能否提供我詳細解釋的示例代碼。 – Xulfee 2010-08-20 04:39:06
您將無法訪問任何DOM元素,因爲ASP.NET MVC使用FileCollectionModelBinder創建文件集合。因此,您在控制器中收到的內容與DOM沒有任何關係。但好事是因爲它是一個可以訪問文件索引的集合。
<input type="file" name="files[0]" id="file1" />
<input type="file" name="files[1]" id="file2" />
<input type="file" name="files[2]" id="file3" />
然後,如果你需要上傳的文件[0]到文件夾Y和文件[1]到文件夾±您可以訪問這些文件集合索引。
switch (index)
{
case 0:
// Upload to Y
case 1:
// Upload to Z
default:
}
可以向我提供詳細解釋的示例代碼 – Xulfee 2010-08-19 18:23:33
我有多個文件上傳來上傳文件在服務器上,那麼我如何識別相關的輸入文件。 建議如果你有想法。 – Xulfee 2010-08-19 17:37:09
我怎樣才能得到輸入的名字? – Xulfee 2010-08-19 17:44:19
但它不返回和輸入名稱 – Xulfee 2010-08-19 17:49:10