Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# asp.net mvc中的文件上载程序_C#_Asp.net Mvc 2_File Upload - Fatal编程技术网

C# asp.net mvc中的文件上载程序

C# asp.net mvc中的文件上载程序,c#,asp.net-mvc-2,file-upload,C#,Asp.net Mvc 2,File Upload,文件上传到服务器时,如何识别文件上传的输入类型=文件id 让我详细解释一下: 我的页面上有多个文件上载控件,不同的控件将文件保存在不同的文件夹中,如Fileupload1将文件保存在Folder1上等等。您不能。发布表单时,不会将HTML元素的id发送到服务器。就name属性而言,您可以在集合中循环。在ASP.NET MVC中,使用动作参数更为常见。例如: <form action="" method="post" enctype="multipart/form-data"> &

文件上传到服务器时,如何识别文件上传的输入类型=文件id

让我详细解释一下:

我的页面上有多个文件上载控件,不同的控件将文件保存在不同的文件夹中,如Fileupload1将文件保存在Folder1上等等。

您不能。发布表单时,不会将HTML元素的id发送到服务器。就name属性而言,您可以在集合中循环。在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");
}
就这么简单。

你不能。发布表单时,不会将HTML元素的id发送到服务器。就name属性而言,您可以在集合中循环。在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" />

在您的控制器中。

正如Darian指出的,ID不会被发送。但是name属性是,因此您的文件上载应该类似于:

<input type="file" name="contactsFile" />

由于ASP.NET MVC使用FileCollectionModelBinder创建文件集合,因此您将无法访问任何DOM元素。因此,您在控制器中接收到的内容与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" />

您将无法访问任何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" />

我有多个文件上传上传到服务器上的文件,然后我如何才能确定文件的相关输入。建议你是否有想法。但它不返回和输入的名称。我有多个文件上传到服务器上传文件,那么我如何才能识别文件的相关输入。建议你是否有想法。但它不会返回输入的名称和名称