开发工具与关键技术:ASP.NET MVC
作者:陈荣基
撰写时间:2019.07.27
图片保存与显示
通常我们在对数据新增、修改等处理的时候少不了图片这一词
对于图片数据的新增或修改也是比较特殊的
因为图片数据是属于文件数据的
所以相对与其他数据传参也是有所不同的他传参的数据不是单纯的文本数据而是图片数据
那么他提交请求控制器的方法传参时控制器那边接收数据的形参的数据类型也是区别于其他的
在控制器中形参的数据类型是HttpPostedFileBase
如下图
使用HttpPostedFileBase这个数据类型来接收是因为图片传参传传的不是一个数据
如下图HttpPostedFileBase类里面的字段
可以看出从图片传过来的是多条数据
所以将HttpPostedFileBase类作为声明字段的数据类型
接收之后就可以进行保存了
如下图将图片以IO流的形式将图片数据转换为二进制数据存入数据库中
然而修改进行图片保存就会出现显示与保存冲突的问题
因为进行图片显示用的是img标签
获取图片数据进行保存却是从type为file的input标签里选择的图片进行获取的
所以当你不进行图片重新选择修改的时候看似有图片显示就会认为有图片数据进行保存
实际上保存的数据是空的所以当你保存数据后刷新看到的图片就是空的
解决这个问题的方法就是给他判断图片传过来的数据是空的就不进行保存
只保存其他数据
如果不是空的就全部数据一起保存
这样就可以实现图片不重新选择就是没修改图片的效果
如下图