Я использовал этот код для загрузки нескольких файлов. Вы можете редактировать свой код для одного файла.
View => Write enctype = "multipart / form-data"
@using (Html.BeginForm("ActionName", "ControolerName", FormMethod.Post, new { enctype = "multipart/form-data" }))
--UploadFile Box
@Html.TextBoxFor(Model => Model.Files, new { type = "file", name = "Files", multiple = "multiple", @class = "form-control", accept = "image/*" })
Использование кода ниже в вашем действии для получения файлов из запроса:
[HttpPost]
public ActionResult UploadFile(long Id)
Параметр ввода действия Не требуется HttpPostedFileBase.
for (int i = 0; i < Request.Files.Count; i++)
{
var file = Request.Files[i];
string fileName = Guid.NewGuid() + System.IO.Path.GetExtension(file.FileName)?.ToLower();
string path = Server.MapPath("~") + "Files\\UploadImages\\" + fileName;
//TODO: Fill Properties Table.example: DocType Or Id Or AddressFile
// entity.DocType = System.IO.Path.GetExtension(file.FileName)?.ToLower();
if (File.DocType?.ToLower() == ".png" || File.DocType?.ToLower() == ".img"
|| File.DocType?.ToLower() == ".jpeg"
|| File.DocType?.ToLower() == ".jpg")
{
file.SaveAs(path);
//TODO: Save Info File In Database
}