MVC使用jQuery上传图片。
View代码:
@using (Html.BeginForm("saveEdit", "AdminUser", FormMethod.Post, new { id = "frm1" }))
{
...
<input type="file" id="user_face" name="user_face" />
<input type="button" value="上传" onclick="upLoadImg()" />
...
<input type="submit" value="保 存" />
}
jQuery:
function upLoadImg()
{
$.ajax({
type:"post",
url:"@Url.Action("UpLoadImage", "AdminUser")",
data:{ imgPath:$("#user_face").val() },
mimeType:"multipart/form-data",
processData:false,
dataType: 'json',
success: function (result) {
if (result != null) {
alert("上传成功!");
}
else {
alert("上传失败~~");
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest.responseText); ;
}
});
}
Controller:
public JsonResult UpLoadImage()
{
if (Request.Files.Count == 0) //这里始终是0,不知道为什么获取不到
{
Response.Write("上传文件失败,文件不存在!");
return null;
}
HttpFileCollectionBase files = Request.Files;
Stream fs = files[0].InputStream;
...
}
说明:
因表单还有用户其它数据要提交,头像是点上传按钮后就上传的,所以不能用form的submit提交,我是用了jQuery进行上传处理的。
UpLoadImage控制器始终取不到传来的文件,我也是参考网上的,不知道哪里有问题,大虾们帮忙看看。
谢谢。