在一个视图MVC中从三个上传控件获取相同的图像

时间:2019-03-14 03:36:20

标签: c# asp.net-mvc asp.net-mvc-4

我有三个文件上传控件,全部都接受单个文件,但是当我进入视图时,所有文件都保存为同一图像在我的图像文件夹中-

我的模型在下面的模型中,我使用了HttpPostedFileBase类型的三个变量和三个标签变量:

 [NotMapped]
    [DisplayName("Upload Image")]
    public string ImagePath { get; set; }
    [NotMapped]
    public HttpPostedFileBase ImageFile { get; set; }

    [NotMapped]
    [DisplayName("Upload Aadhaar Card")]
    public string AadhaarPathL { get; set; }
    [NotMapped]
    public HttpPostedFileBase AadhaarFile{get;set;}
    [NotMapped]
    [DisplayName("Upload PAN Card")]
    public string   PanPathL           { get; set; }
    [NotMapped]
    public HttpPostedFileBase PanFile { get; set; }

在View中,我声明了要上传图像的文件类型为文本:

 @using (Html.BeginForm("CreateVendor", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<div style="margin-left:70px;">
    @Html.AntiForgeryToken()
     <div class="row">
        <div class="col-md-6">

            <div class="form-group">
                @Html.LabelFor(model => model.ImagePath)
                @Html.TextBoxFor(model => model.ImageFile, new { type = "file", name = "ImageFile", id = "ImageFile",@class= "form-control" })
                @Html.ValidationMessageFor(model => model.ImagePath, "", new { @class = "text-danger" })
            </div>
        </div>
        <div class="col-md-6">
            <div class="form-group">
                @Html.LabelFor(model => model.AadhaarPathL)
                @Html.TextBoxFor(m => m.AadhaarFile,new { type = "file", name = "AadhaarFile", id = "AadhaarFile", @class = "form-control" })
                @Html.ValidationMessageFor(model => model.AadhaarPathL, "", new { @class = "text-danger" })
            </div>
        </div>
    </div>
    <div class="row">
        <div class="col-md-6">
            <div class="form-group">
                @Html.LabelFor(model => model.PanPathL)
                @Html.TextBoxFor(m => m.PanFile, new { type = "file", name = "PanFile", id = "PanFile", @class = "form-control" })
                @Html.ValidationMessageFor(model => model.PanPathL, "", new { @class = "text-danger" })
            </div>
        </div>
        <div class="col-md-6">
            <div class="form-group">
                @* Empty  *@
            </div>
        </div>
    </div>
    </div>
}

最后,在查看代码中,uri和图像都一一对应,但是每次我为每个图像保存相同的图像时。我被困在这里

    [HttpPost]
        public ActionResult CreateVendor(VendorList vendorList)
        {
 #region Photo Image 
                string fileName = Path.GetFileNameWithoutExtension(vendorList.ImageFile.FileName);
                string extension = Path.GetExtension(vendorList.ImageFile.FileName);
                fileName = fileName + "Photo" + DateTime.Now.ToString("yymmssfff") + extension;

                var uri = string.Format("{0}://{1}{2}{3}",
                 System.Web.HttpContext.Current.Request.Url.Scheme,
                 System.Web.HttpContext.Current.Request.Url.Host,
                 System.Web.HttpContext.Current.Request.Url.Port == 80 ? string.Empty : ":" + System.Web.HttpContext.Current.Request.Url.Port,
                 "/Image/" + fileName);

                vendorList.ImagePath = "~/Image/" + fileName;

                fileName = Path.Combine(Server.MapPath("~/Image/"), fileName);
                vendorList.ImageFile.SaveAs(fileName);
                vendorList.PhotoPath = fileName;

                vendorList.PhotoUrl = uri;
                #endregion
                #region Aadhaar Image 
                string fileAadhaarName = Path.GetFileNameWithoutExtension(vendorList.AadhaarFile.FileName);
                string extensionAadhaar = Path.GetExtension(vendorList.AadhaarFile.FileName);
                fileAadhaarName = fileAadhaarName + vendorList.Email + "Aadhaar" + DateTime.Now.ToString("yymmssfff") + extensionAadhaar;

                var uriAadhaar = string.Format("{0}://{1}{2}{3}",
                 System.Web.HttpContext.Current.Request.Url.Scheme,
                 System.Web.HttpContext.Current.Request.Url.Host,
                 System.Web.HttpContext.Current.Request.Url.Port == 80 ? string.Empty : ":" + System.Web.HttpContext.Current.Request.Url.Port,
                 "/Image/" + fileAadhaarName);

                vendorList.AadhaarPathL = "~/Image/" + fileAadhaarName;

                fileAadhaarName = Path.Combine(Server.MapPath("~/Image/"), fileAadhaarName);
                vendorList.ImageFile.SaveAs(fileAadhaarName);
                vendorList.AadhaarPath = fileAadhaarName;

                vendorList.AadhaarUrl = uriAadhaar;
                #endregion
                #region Pan Image 
                string filePanName = Path.GetFileNameWithoutExtension(vendorList.PanFile.FileName);
                string extensionPan = Path.GetExtension(vendorList.PanFile.FileName);
                filePanName = filePanName + vendorList.Email + "Pan" + DateTime.Now.ToString("yymmssfff") + extensionPan;

                var uriPan = string.Format("{0}://{1}{2}{3}",
                 System.Web.HttpContext.Current.Request.Url.Scheme,
                 System.Web.HttpContext.Current.Request.Url.Host,
                 System.Web.HttpContext.Current.Request.Url.Port == 80 ? string.Empty : ":" + System.Web.HttpContext.Current.Request.Url.Port,
                 "/Image/" + filePanName);

                vendorList.PanPathL = "~/Image/" + filePanName;

                filePanName = Path.Combine(Server.MapPath("~/Image/"), filePanName);
                vendorList.ImageFile.SaveAs(filePanName);
                vendorList.PanPath = filePanName;

                vendorList.PanUrl = uriPan;

}

有人可以建议这里发生了什么吗?

0 个答案:

没有答案