Kha*_*775 2 asp.net-mvc base64 image-upload
我有这个表格,我正在尝试上传图像。当我点击提交按钮时,出现以下错误:
“输入不是有效的 Base-64 字符串,因为它包含非 Base-64 字符、两个以上的填充字符,或者填充字符中包含非法字符。”
永远无法到达控制器,因为我上传图像后就会发生错误。我不知道该怎么办。任何帮助表示赞赏!
@using (Html.BeginForm("Create", "Create", FormMethod.Post, new { enctype = "multipart/form-data"}))
{
@Html.AntiForgeryToken()
<div class="form-group">
<div class="col-md-10">
@Html.LabelFor(model => model.ComponentModel.Image, htmlAttributes: new {@class = "control-label col-md-2"})
<a class="btn" href="javascript:;">
Choose File...
<input type="file" name="Image" Size="40" style="position: absolute; z-index: 2; top: 0; left: 0; filter: alpha(opacity=0); opacity: 0; background-color: transparent; color: transparent"
onchange='$("#upload-file-info").html($(this).val());'/>
</a>
<span class="label label-info" id="upload-file-info"></span>
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default"/>
</div>
</div>
}
Run Code Online (Sandbox Code Playgroud)
更新:
这是创建控制器:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(Component component, HttpPostedFileBase image = null)
{
if (ModelState.IsValid)
{
if (image != null)
{
component.Image = new byte[image.ContentLength];
image.InputStream.Read(component.Image, 0, image.ContentLength);
}
componentRepository.InsertComponent(component);
componentRepository.Save();
return RedirectToAction("Index", "Home");
}
return RedirectToAction("Index", component);
}
Run Code Online (Sandbox Code Playgroud)
您确实没有在这里提供足够的信息,但我将根据错误消息进行大胆猜测。
你说它没有击中你的控制器,但它必须击中你的控制器。该错误来自 ASP.NET,因此它会返回到服务器。
您已将文件输入绑定到Image,我的猜测是Image您模型上的字节数组。您不能直接发布到字节数组。您需要绑定到 type 的属性HttpPostedFileBase,然后您可以从中读取字节数组并将其设置到其他属性上。
| 归档时间: |
|
| 查看次数: |
2519 次 |
| 最近记录: |