如何在MVC上实现图片上传的功能

怎么在MVC上实现图片上传的功能
要求上传到一个文件夹 然后读取文件夹的路径 保存到数据库中
------解决思路----------------------

// 检查是否是 multipart/form-data 
            if (!Request.Content.IsMimeMultipartContent("form-data"))
                throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
            // 设置上传目录 
            var provider = new MultipartFormDataStreamProvider("F:\\");

            var queryp = Request.GetQueryNameValuePairs();//获得查询字符串的键值集合 
            Hashtable hash = new Hashtable();
            var bodyparts = await Request.Content.ReadAsMultipartAsync(provider);
            int i = -1;
            foreach (var bodypart in bodyparts.FileData)
            {
                i++;
                string key1 = "error" + i;
                string key2 = "errmsg" + i;
                hash[key1] = 1;
                hash[key2] = "上传出错";
                string orfilename = bodypart.Headers.ContentDisposition.FileName.TrimStart('"').TrimEnd('"');
                FileInfo fileinfo = new FileInfo(bodypart.LocalFileName);
                //最大文件大小 
                int maxSize = 100000000;
                if (fileinfo.Length <= 0)
                {
                    hash[key1] = 1;
                    hash[key2] = "请选择上传文件。";
                }
                else if (fileinfo.Length > maxSize)
                {
                    hash[key1] = 1;
                    hash[key2] = "上传文件大小超过限制。";
                }
                else
                {
                    string fileExt = orfilename.Substring(orfilename.LastIndexOf('.'));
                    //定义允许上传的文件扩展名 
                    const string fileTypes = "gif,jpg,jpeg,png,bmp";
                    if (String.IsNullOrEmpty(fileExt) 
------解决思路----------------------
 Array.IndexOf(fileTypes.Split(','), fileExt.Substring(1).ToLower()) == -1)
                    {
                        hash[key1] = 1;
                        hash[key2] = "上传文件扩展名是不允许的扩展名。";
                    }
                    else
                    {
                        String newFileName = DateTime.Now.ToString("yyyyMMddHHmmss_ffff", System.Globalization.DateTimeFormatInfo.InvariantInfo);
                        fileinfo.CopyTo(Path.Combine("F:\\", newFileName + fileExt), true);
                        fileinfo.Delete();
                        hash[key1] = 0;
                        hash[key2] = "上传成功";
                    }
                }
            }
            return hash;   


html的页面就不用给了吧