未回发 MVC 文件



HTTPPostedFileBase 在控制器中始终为 null。请审查并让我知道我错在哪里。

控制器开机自检方法

public ActionResult EditProfile(Contact model, HttpPostedFileBase picture, string currentPassword, string CurrentPasswordQ, string newPassword, string loginPwd, string currentPinQ, string newPin, int? selectedQuestion, string answer, bool pwdChange = false, bool questionChange = false, bool pinChange = false)
{

我的表单页眉

@using (Html.BeginForm("EditProfile", "CompanyAdmin", FormMethod.Post, new { enctype = "multipart/form-data", @data_ajax = "false" }))

{

和我的文件输入

<tr>
<td class="label_form_div">
<label>Profile Picture</label>
</td>
<td>
<input type="file" name="picture" />
</td>
</tr>

请查看,看看是否可以找到问题所在。 谢谢

看来您的代码是正确的,无论如何请在控制器中尝试这种方式。它可能会对您有所帮助:

public ActionResult EditProfile(Contact model, string currentPassword, string CurrentPasswordQ, string newPassword, string loginPwd, string currentPinQ, string newPin, int? selectedQuestion, string answer, bool pwdChange = false, bool questionChange = false, bool pinChange = false)
{
if (Request.Files != null && Request.Files.Count > 0)
{
HttpPostedFileBase file = Request.Files[0];
if (file != null && file.ContentLength > 0)
{
//other logic
}
}

}

来源: https://stackoverflow.com/a/32219011/3397630

请按照以下步骤操作。

步骤 :- 1

@using (Html.BeginForm("FileUpload", "Home", FormMethod.Post, 
new { enctype = "multipart/form-data" }))
{  
<label for="file">Upload Image:</label> 
<input type="file" name="file" id="file" style="width: 100%;" /> 
<input type="submit" value="Upload" class="submit" /> 
}

步骤 :- 2

public ActionResult FileUpload(HttpPostedFileBase file)
{
if (file != null)
{
string pic = System.IO.Path.GetFileName(file.FileName);
string path = System.IO.Path.Combine(
Server.MapPath("~/images/profile"), pic); 
// file is uploaded
file.SaveAs(path);
// save the image path path to the database or you can send image 
// directly to database
// in-case if you want to store byte[] ie. for DB
using (MemoryStream ms = new MemoryStream()) 
{
file.InputStream.CopyTo(ms);
byte[] array = ms.GetBuffer();
}
}
// after successfully uploading redirect the user
return RedirectToAction("actionname", "controller name");
}

最新更新