首页 > 代码库 > MVC文件上传

MVC文件上传

这次来看下一个MVC网站上传文件的功能,其中上传用到uploadify这个jquery插件,网上还有很多类似的,哪种都无所谓,能实现功能便行,貌似uploadify官网上的这个插件是要付费的,这里就顺便提供这个插件的下载地址如下:

首先创建一个MVC的网站,新建一个文件夹名称为UpLoadiFy(这里可以随便起名称),来存放uploadify这个插件需要用到的js,css以及flash文件。如下图:

1

Home控制器有两个方法,Index和一个上传时插件传入的UpLoadFile方法。如下:

public ActionResult Index()        {            return View();        }        [HttpPost]        public ContentResult UpLoadFile(HttpPostedFileBase fileData)        {            if (fileData != null && fileData.ContentLength > 0)            {                string fileSave = Server.MapPath("~/UpLoad/");                //获取文件的扩展名                string extName = Path.GetExtension(fileData.FileName);                //得到一个新的文件名称                string newName = Guid.NewGuid().ToString() + extName;                fileData.SaveAs(Path.Combine(fileSave, newName));            }            return Content("");        }

至于前台的话就只需要引用jquery的js和对应插件的js,css,便可。:

3

至于<script></script>里面的代码就如下了,通过初始化来实现上传功能,至于里面的参数可以去google一下uploadify这个插件的相关参数,下面的代码也注释了一下主要参数的作用。

<script type="text/javascript">        $(function () {            $(‘#Filedata‘).uploadify({                fileObjName: ‘Filedata‘,                uploader: ‘/Home/UpLoadFile‘,           // 服务器端处理地址            swf: ‘/UpLoadiFy/uploadify.swf‘,    // 上传使用的 Flash            width: 60,                          // 按钮的宽度            height: 23,                         // 按钮的高度            buttonText: "上传",                 // 按钮上的文字            buttonCursor: ‘hand‘,                // 按钮的鼠标图标            fileObjName: ‘Filedata‘,            // 上传参数名称            // 两个配套使用            fileTypeExts: "*.jpg;*.png",             // 扩展名,限制扩展名,可按照自己想要的来设置            fileTypeDesc: "请选择 jpg png 文件",     // 文件说明            auto: true,                // 选择之后,自动开始上传            multi: true,               // 是否支持同时上传多个文件            queueSizeLimit: 5          // 允许多文件上传的时候,同时上传文件的个数            });        });    </script>

这样便搞定了整个基本上传的功能,从前台的jquery插件选择了文件后,便会把这个文件的相关信息传入都控制器后台的UpLoadFile方法,然后再保存起来到指定的路径,如上面的代码我保存的是("~/UpLoad/");这个路径。运行效果如下:

4

 

5

 

MVC文件上传