ASP.NET 后台上传图片

2021年开始了,今天写一个记录博客,记录在asp.net中上传图片的功能,其实很简单。主要是命名问题。避免命名重复就可以了。

在这里主要先说功能,衍生出来的命名规则,适用场景等等且先不说。譬如按文件夹分类,按日期分类图片,重复上传图片是否修改等等。

话不多说,直接上代码

       #region 上传图片
        /// <summary>
        /// 上传门票名称图片
        /// </summary>
        /// <returns></returns>
        public ActionResult UploadFilePhoto()
        {
            var files = Request.Files;
            if (files.Count <= 0)
            {
                  return Error("上传失败,文件未找到");
            }
            var file = files[0];
            var Serverpath = "/Files/Stock_GoodsType/";
            var path = Server.MapPath(Serverpath);
            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }
            var filename = Guid.NewGuid().ToString() + Path.GetFileName(file.FileName);
            var fullPath = Path.Combine(path, filename);
            file.SaveAs(fullPath);
       return Success("上传成功。", Serverpath + filename); }
#endregion

简简单单,回头我自己跑来拿着用。最后结束是给一个相对路径回去到前台做展示。

当然,还可以有给绝对路径的方式

  #region 上传图片

        /// <summary>
        /// 上传门票名称图片
        /// </summary>
        /// <param name="folder"></param>
        /// <returns></returns>
        public ActionResult UploadFilePhoto(string folder)
        {
            var ServerUrl = System.Configuration.ConfigurationManager.AppSettings["SelfConfig"];
            var files = Request.Files;
            if (files.Count > 0)
            {
                var file = files[0];
                var Serverpath = $"/Files/{folder}/";
                var path = Server.MapPath(Serverpath);
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }

                string jpgname = Path.GetExtension(file.FileName);
                var filename = Guid.NewGuid().ToString() + jpgname;
                var fullPath = Path.Combine(path, filename);
                file.SaveAs(fullPath);

                string resultUrl = ServerUrl.Substring(0, ServerUrl.LastIndexOf('/')) + Serverpath + filename;
                return Content(new AjaxResult { type = ResultType.success, message = "上传成功。", resultdata = resultUrl }.ToJson());

            }
            return Content(new AjaxResult { type = ResultType.error, message = "上传失败,文件未找到" }.ToJson());
        }
#endregion

区别只在于最后resultUrl里把绝对地址拼入了返回地址里面,以后拿出来用就比较好用了

原文地址:https://www.cnblogs.com/SevenWang/p/14261737.html