2016-10-05 2 views
1

데이터베이스에 사진을 업로드? 어떻게 해결할 수 있을까요?이름 사진 때이 이름</p> <p><code>System.Web.HttpPostedFileWrapper</code></p> <p>무슨 문제가 저장 "System.Web.HttpPostedFileWrapper"

public async Task<ActionResult> Register(RegisterViewModel model, HttpPostedFileBase UserPhoto) 
    { 
     if (ModelState.IsValid) 
     { 
      model.DateRegister = DateTime.Now; 
      var user = new ApplicationUser { UserName = model.UserName, Name = model.Name, Family = model.Family, 
       PhoneNumber = model.PhoneNumber, Gender = model.Gender, BirthDay = model.BirthDay, DateRegister = model.DateRegister, 
       IsActive = false, UserPhoto = model.UserPhoto, Email = model.Email }; 

      if (UserPhoto != null) 
      { 
       UserPhoto = Request.Files[0]; 
       var ext = System.IO.Path.GetExtension(UserPhoto.FileName); 
       if (ext == ".jpeg" || ext == ".jpg" || ext == ".png") 
       { 

        string filename = model.PhoneNumber + ext; 
        UserPhoto.SaveAs(Server.MapPath(@"~/Image/" + filename)); 
        model.UserPhoto = filename; 
       } 
      } 

      var result = await UserManager.CreateAsync(user, model.Password); 
      if (result.Succeeded) 
      { 

       await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false); 

       return RedirectToAction("Index", "Home"); 
      } 
      AddErrors(result); 
     } 
     return View(model); 
    } 

.

<div class="form-group"> 
    @Html.LabelFor(m => m.UserPhoto, new { @class = "col-md-2 control-label" }) 
    <div class="col-md-10"> 
     <input type="file" name="UserPhoto" id="fileUpload" /> 
    </div> 
</div> 

/****************************************** *************************************************/

+0

코드에이 문제의 원인을 나타내는 것은 없습니다. 디버깅을 제안하고 파일 이름이 설정된 곳에 중단 점을 설정합니다. –

+0

'if' 조건문에 모두 괜찮습니다.하지만'if'에서 빠져 나오면'var result' 이미지 이름이 바뀝니다. – Kianoush

+0

먼저 관련 정보를 모두 포함하도록 질문을 편집하십시오. 둘째, 앞에서 언급했듯이 파일 이름이 변경 될 수있는 코드에는 * 표시가 없습니다. 따라서, 그것은 당신이 보여주지 않는 코드에 있어야합니다. 아마도'UserManager.CreateAsync'가 어떤 식 으로든'user'를 바꾸고 있을까요? –

답변

2

처음 파일 이름을 설정하면 model이 설정됩니다. 그러나 나중에 사용자를 만들 때 user을 사용하고 있습니다. 뷰로 반환하는 것 외에는 model.UserPhoto으로 아무 것도 수행하지 않습니다.

+0

감사합니다. . . . – Kianoush