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里把绝对地址拼入了返回地址里面,以后拿出来用就比较好用了