/// <summary> /// 图片上传 /// </summary> /// <param name="file"></param> /// <param name="param"></param> /// <returns></returns> public async Task <AjaxResponse> Upload(IFormFile file, string param = "") { if (file == null) { return(await Task.FromResult(new AjaxResponse(false) { Result = "文件不存在" })); } #region 1.0 生成文件dto对象 CreateFileInput attachFile = new CreateFileInput { FileName = ContentDispositionHeaderValue .Parse(file.ContentDisposition) .FileName .Trim('"'), Describe = param, ContentType = file.ContentType, FileSize = GetFileSize(file.Length), }; attachFile.FileType = Path.GetExtension(attachFile.FileName); #endregion #region 2.0 创建文件的存放路径 string relativeFilePath = $"\\upload\\product\\{Clock.Now.ToString("yyyy_MM")}\\"; string fileDir = hostingEnv.WebRootPath + relativeFilePath; if (!Directory.Exists(fileDir)) { Directory.CreateDirectory(fileDir); } #endregion #region 3.0 设置文件的项目路径 string fileName = $"{ Clock.Now.ToString("yyyyMMdd") }_{GetUniqValue()}{attachFile.FileType}"; attachFile.FilePath = relativeFilePath.Replace("\\", "/") + $"{fileName}"; #endregion #region 4.0 保存文件到数据和具体的位置中 var newFile = await _fileAppService.Create(attachFile); //3:将文件拷贝到对应的位置 string newFilePath = $"{ fileDir }{ fileName }"; using (FileStream fs = System.IO.File.Create(newFilePath)) { // 复制文件新路径 await file.CopyToAsync(fs); // 清空缓冲区数据 fs.Flush(); } #endregion //返回结果集 return(await Task.FromResult(new AjaxResponse(true) { Result = ObjectMapper.Map <FileDto>(newFile) })); }
/// <summary> /// 上传图片的方法 /// </summary> /// <param name="file"></param> /// <param name="module"></param> /// <returns></returns> private async Task <FileDto> SaveFile(IFormFile file, string module) { if (file == null) { throw new UserFriendlyException("文件不存在"); } #region 1.0 生成文件dto对象 CreateFileInput attachFile = new CreateFileInput { FileName = ContentDispositionHeaderValue .Parse(file.ContentDisposition) .FileName .Trim('"'), Describe = "", Module = module, ContentType = file.ContentType, FileSize = GetFileSize(file.Length), }; attachFile.FileType = Path.GetExtension(attachFile.FileName); #endregion #region 2.0 创建文件的存放路径 string relativeFilePath = $"\\upload\\{module}\\{Clock.Now.ToString("yyyy_MM")}\\"; string fileDir = hostingEnv.WebRootPath + relativeFilePath; if (!Directory.Exists(fileDir)) { Directory.CreateDirectory(fileDir); } #endregion #region 3.0 设置文件的项目路径 string fileName = $"{ Clock.Now.ToString("yyyyMMdd") }_{GetUniqValue()}{attachFile.FileType}"; attachFile.FilePath = relativeFilePath.Replace("\\", "/") + $"{fileName}"; #endregion #region 4.0 保存文件到数据和具体的位置中 var newFile = await _fileAppService.Create(attachFile); //3:将文件拷贝到对应的位置 string newFilePath = $"{ fileDir }{ fileName }"; using (FileStream fs = System.IO.File.Create(newFilePath)) { // 复制文件新路径 await file.CopyToAsync(fs); // 清空缓冲区数据 fs.Flush(); } #endregion return(await Task.FromResult(newFile)); }