首先第一步就是界面。样式什么的就不设置了,先实现功能就行。
<form id="form2" method="post" enctype="multipart/form-data">
<input type="file" id="imageUpLoad" name="imageUpLoad" class="form-control required" style="float: left; width: 200px;">
<input type="button" value="点击上传" onclick="UpLoad()" class="btn btn-primary">
</form>
先选择图片进行上传,这里使用from 中的type="file"就可以选择图片,然后定义一个上传按钮,按钮中给他一个onclick事件。
function UpLoad() {
//如果有其他的值,判断下是否为空
var keyValue = $("#gridList").jqGridRowValue().Id;
form2.action = "/List/AddEvidence?keyValue=" + keyValue;
form2.submit();
}
这个是跳转到了控制器的AddEvidence方法中,参数是keyValue 。
后台控制器的写法:
[HttpPost]
//
public ActionResult AddEvidence(HttpPostedFileBase imageUpLoad, string keyValue)
{
string fileName = imageUpLoad.FileName;
//转换只取得文件名,去掉路径。
if (fileName.LastIndexOf("\\") > -1)
{
fileName = fileName.Substring(fileName.LastIndexOf("\\") + 1);
}
string type = fileName.Substring(fileName.LastIndexOf(".") + 1);//得到加载文件的扩展名
if (type == "jpg" || type == "bmp" || type == "gif" || type == "png")
{
//重命名,方便同一管理
fileName = DateTime.Now.ToString("yyyyMMddhhmmss") + "-" + Path.GetFileName(imageUpLoad.FileName);
string uppath = Server.MapPath("/Content/IssueImages/") + fileName;
//保存到相对路径下。
imageUpLoad.SaveAs(uppath);
//以下代码是将 路径保存到数据库。
string ImageUrl = "/Content/IssueImages/" + fileName;
//在数据库中查出来是否已经上传了图片
var data = this.CreateService<IIssueListAppService>().GetIssueListById(keyValue).First();
if (data.ImageUrl == null)
{
//如果没有上传,那就存进去
UpdateIssueRecordsInput input = new UpdateIssueRecordsInput();
input.Id = keyValue;
input.ImageUrl = ImageUrl;
this.CreateService<IIssueListAppService>().UpdateImageUrl(input);
return Success("上传图片成功!");
}
else if (data.ImageUrl2 == null)
{
UpdateIssueRecordsInput input = new UpdateIssueRecordsInput();
input.Id = keyValue;
input.ImageUrl2 = ImageUrl;
this.CreateService<IIssueListAppService>().UpdateImageUrl2(input);
return Success("上传图片成功!");
}
else if (data.ImageUrl3 == null)
{
UpdateIssueRecordsInput input = new UpdateIssueRecordsInput();
input.Id = keyValue;
input.ImageUrl3 = ImageUrl;
this.CreateService<IIssueListAppService>().UpdateImageUrl3(input);
return Success("上传图片成功!");
}
else
{
return Error("最多上传三张图片");
}
}
else
{
return Error("文件格式不正确");
}
}
这时候已经将图片上传到服务器,路径存到数据库了,下一篇将介绍显示图片并且实现删除。