文件上传是web系统的一项基本需求,所以 wojilu MVC framework 对上传功能做了简单封装,尤其是图片上传,封装了缩略图生成、删除、图片添加水印等功能,省得您自己写GDI代码了。
【准备工作】为了能顺利使用上传功能,必须在项目中添加对 System.Web 的引用。
我们先看一下效果图:
第一步,当然是设计领域模型:
领域模型中的FullPath 和 FullThumbPath 不需要存储到数据库中,所以打上了 NotSave 的批注
第二步,设计控制器。
文件列表部分:
因为我们支持两种类型的文件,所以按照两种格式显示。图片需要显示缩略图。
上传部分:
在上传一般文件的时候,我们使用了 Uploader.SaveFile 方法
在上传图片的时候,却另外使用了 Uploader.SaveImg 方法,之所以要区别开来,是因为 SaveImg 方法可以自动生成缩略图。缩略图的大小,您可以在文件 framework/config/site.config 中配置:
删除部分:
删除操作也区分开来了。Img 的 DeleteImgAndThumb方法能顺带把缩略图一起删除。
视图界面:
最后,我们看一下效果。上传界面:
上传之后的效果
【注意事项】
1)为了安全,默认只允许上传图片和经过打包的文件,比如.zip/.rar/.7z等,不允许直接上传txt、doc等文件
2)视图中的上传控件 <input type="file" name="myfile" /> 红字部分必须填写(也就是控件的名称)。