无刷新上传图片(asp.net mvc)
步骤:
1,先引用脚本,ajaxfileupload.js和配套的jquery(注意:这里如果版本不同可能会出错)
2,客户端部分代码:
<div class="jumbotron">
<h1>ASP.NET</h1>
<input type="file" name="image" id="image" style="width:350px;height:25px;" />
<img src="~/Content/Image/loading.gif" style="width:100px;height:100px; display:none;" />
<br />
<input type="submit" value="提交" onclick="javascript:uploadimage()" />
<div id="showimage" style="display:none;">
<img id="imagebox" style="width:300px;height:300px;" />
</div>
</div>
3,客户端的脚本部分:
function uploadimage() {
$("#loading")
.ajaxStart(function () {
$(this).show();
})
.ajaxComplete(function () {
$(this).hide();
});
$.ajaxFileUpload({
type: ‘post‘,
url: ‘/UpLoad/UploadImage‘,
secureuri: false,
fileElementId: ‘image‘,
dataType: ‘text/html‘,
success: function (data, textstatus) {
document.getElementById("showimage").style.display = "block";
$("#imagebox").attr("src", data);
},
error: function (data,status) {
alert("ERROR:"+data);
}
})
}
这里测试的时候将datatype设置为json格式的出错,返回的数据会自动加上<pre>标签,所以本文采用datatype:text/html数据类型。
4,处理控制器端的代码:
[HttpPost]
public ContentResult UploadImage(HttpPostedFileBase image)
{
image = HttpContext.Request.Files["image"];
if (image != null)
{
string upAddress = Server.MapPath("~/Content/Image/");
int rn = new Random().Next(0, 100000);
string finalUploadAddress = upAddress + rn.ToString() + System.IO.Path.GetFileName(image.FileName);
image.SaveAs(finalUploadAddress);
Response.ContentType = "text/html";
return Content( "/Content/Image/" + rn.ToString() + System.IO.Path.GetFileName(image.FileName),"text/html",System.Text.Encoding.UTF8 );
}
else
{
return Content("传入了空值" );
}
}
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。