• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#结合js上传文件和删除文件(技术点有:asp.netmvc,nhibernate,ajax等) ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

之前做项目的时候要用到上传文件的功能,现在我总结一下,上传文件和删除文件的代码,在以后的使用的过程中也更方便查找。

[HttpPost]
        public ActionResult EditUser()
        {
            var userDal = new UserDal();
            const string savePath = "/Images/Avatar/";
            const string saveUrl = "/Images/Avatar/";
            const string fileTypes = "gif,jpg,jpeg,png,bmp";
            const int maxSize = 1000000;

            Hashtable hash;

            HttpPostedFile file = System.Web.HttpContext.Current.Request.Files["upload"];
            var id = System.Web.HttpContext.Current.Request.Params["id"];
            var posttitle = System.Web.HttpContext.Current.Request.Params["posttitle"];
            if (file == null)
            {
                hash = new Hashtable();
                hash["success"] = false;
                hash["msg"] = "请选择上传文件";
                return Json(hash, "text/html;charset=UTF-8");
            }

            string dirPath = System.Web.HttpContext.Current.Server.MapPath(savePath);
            if (!Directory.Exists(dirPath))
            {
                hash = new Hashtable();
                hash["success"] = false;
                hash["msg"] = "上传目录不存在";
                return Json(hash, "text/html;charset=UTF-8");
            }

            string fileName = file.FileName;
            string fileExt = Path.GetExtension(fileName).ToLower();

            ArrayList fileTypeList = ArrayList.Adapter(fileTypes.Split(','));

            if (file.InputStream == null || file.InputStream.Length > maxSize)
            {
                hash = new Hashtable();
                hash["success"] = false;
                hash["msg"] = "上传文件大小超过限制";
                return Json(hash, "text/html;charset=UTF-8");
            }

            if (string.IsNullOrEmpty(fileExt) || Array.IndexOf(fileTypes.Split(','), fileExt.Substring(1).ToLower()) == -1)
            {
                hash = new Hashtable();
                hash["success"] = false;
                hash["msg"] = "上传文件扩展名是不允许的扩展名";
                return Json(hash, "text/html;charset=UTF-8");
            }

            string newFileName = DateTime.Now.ToString("yyyyMMddHHmmss_ffff", DateTimeFormatInfo.InvariantInfo) + fileExt;
            string filePath = dirPath + newFileName;
            file.SaveAs(filePath);
            string fileUrl = saveUrl + newFileName;

            hash = new Hashtable();
            try
            {
                var user = userDal.GetByUser(id);
                var imgurl = user.Avatar;
                var pathall = _userimgpath + imgurl.Replace("/","\\");
                if (System.IO.File.Exists(pathall))
                {
                    System.IO.File.Delete(pathall);
                }
                userDal.Update(new User()
                {
                    Id = id,
                    PostTitle = posttitle,
                    Avatar = fileUrl
                });
                hash["success"] = true;
                hash["msg"] = "上传成功";
                return Json(hash, "text/html;charset=UTF-8");
            }
            catch (Exception)
            {
                hash["success"] = false;
                hash["msg"] = "上传失败";
                return Json(hash, "text/html;charset=UTF-8");
            }
        }

总结一下:

将前台上传的文件通过System.Web.HttpContext.Current.Request.Files[]方法获取到然后根据已知的路径保存到文件夹中,如果已经存在了这个文件,就将它从文件夹中删除,最后将成功或失败的数据通过hashtable转换成json传递到前台,一个C#的文件上传和删除文件就这样完成了。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
asp.net通过配置文件设置默认页发布时间:2022-07-10
下一篇:
asp.net加入验证码发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap