1,file上传图片
/// <summary>
/// 上传图片
/// </summary>
/// <returns></returns>
[Route("Upload/FormImg")]
[HttpPost]
public async Task<DTOTO> UploadImg(List<IFormFile> files)
{
DTOTO res = new DTOTO();
if (files.Count < 1)
{
res.Code = 0;
res.msg = "不能为空";
return res;
}
//返回的文件地址
List<string> filenames = new List<string>();
var now = DateTime.Now;
//文件存储路径
var filePath = string.Format("/Uploads/{0}/{1}/{2}/", now.ToString("yyyy"), now.ToString("yyyyMM"), now.ToString("yyyyMMdd"));
//获取当前web目录
var webRootPath = _hostingEnvironment.WebRootPath;
if (!Directory.Exists(webRootPath + filePath))
{
Directory.CreateDirectory(webRootPath + filePath);
}
try
{
foreach (var item in files)
{
if (item != null)
{
#region 图片文件的条件判断
//文件后缀
var fileExtension = Path.GetExtension(item.FileName);
//判断后缀是否是图片
const string fileFilt = ".gif|.jpg|.jpeg|.png";
if (fileExtension == null)
{
break;
//return Error("上传的文件没有后缀");
}
if (fileFilt.IndexOf(fileExtension.ToLower(), StringComparison.Ordinal) <= -1)
{
break;
//return Error("请上传jpg、png、gif格式的图片");
}
//判断文件大小
long length = item.Length;
if (length > 1024 * 1024 * 2) //2M
{
break;
//return Error("上传的文件不能大于2M");
}
#endregion
var strDateTime = DateTime.Now.ToString("yyMMddhhmmssfff"); //取得时间字符串
var strRan = Convert.ToString(new Random().Next(100, 999)); //生成三位随机数
var saveName = strDateTime + strRan + fileExtension;
//插入图片数据
using (FileStream fs = System.IO.File.Create(webRootPath + filePath + saveName))
{
await item.CopyToAsync(fs);
fs.Flush();
}
filenames.Add(filePath + saveName);
}
}
res.Code = 1;
res.msg = "上传成功";
res.Data = filenames;
return res;
}
catch (Exception ex)
{
//这边增加日志,记录错误的原因
//ex.ToString();
res.Code = 0;
return res;
}
}
2,base上传图片
/// <summary>
///
/// </summary>
/// <param name="fileBase64"></param>
/// <param name="fileExt"></param>
/// <returns></returns>
/// [EnableCors("cors")]
[HttpPost,Route("UploadBase64")]
public DTOTO UploadBase64([FromForm]string fileBase64, [FromForm]string fileExt)
{
DTOTO dTOTO = new DTOTO();
byte[] bytes = Convert.FromBase64String(fileBase64);
//var fileExtension = Path.GetExtension(fileName);
//int index = fileExt.IndexOf("/")+1;
//string c = fileExt.Substring(index, fileExt.Length - index);
string webRootPath = _hostingEnvironment.WebRootPath;
string newFileName = System.Guid.NewGuid().ToString() + "." + fileExt; //随机生成新的文件名
var filePath = webRootPath + "/upload";
var RetfilePath = "upload/" + newFileName;
if (!Directory.Exists(filePath))
{
Directory.CreateDirectory(filePath);
}
filePath = webRootPath + "/upload/" + newFileName;
try
{
dTOTO.Code = 0;
FileStream fs = new FileStream(filePath, FileMode.CreateNew);
fs.Write(bytes, 0, bytes.Length);
fs.Close();
dTOTO.msg = "上传成功";
dTOTO.Data = RetfilePath;
}
catch (Exception ex)
{
dTOTO.Code = 1;
dTOTO.msg = "newFileName:" + newFileName + "Error:" + ex.Message;
}
return dTOTO;
}
版权声明:本文为chafferer_原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。