public async Task <FileUploadResultInfo> UploadFileManager(IFormFile file) { if (file == null || file.Length == 0) { return(null); } // Get root upload Request.Headers.TryGetValue("UploadRootPath", out var uploadRootPath); var host = Request.Host.Host; var scheme = Request.Scheme; var port = Request.Host.Port; var currentDate = DateTime.Now; var root = uploadRootPath.FirstOrDefault() ?? Path.Combine(FileConstants.FileManagerRootPath, currentDate.Year.ToString(), currentDate.Month.ToString(), currentDate.Day.ToString()); if (!Directory.Exists(root)) { Directory.CreateDirectory(root); } var fileResultInfo = new FileUploadResultInfo(); var fileExt = Path.GetExtension(file.FileName); var newFileName = FileHelper.GetRandomFileName(fileExt); var path = Path.Combine(root, newFileName); using (var stream = new FileStream(path, FileMode.Create)) { await file.CopyToAsync(stream); } // Convert doc To Image if (fileExt.ToLower() == ".doc" || fileExt.ToLower() == ".docx") { FileHelper.ConvertDocToImage(root, newFileName); } // Convert pdf To Image if (fileExt.ToLower() == ".pdf") { var result = FileHelper.ConvertPdfToImage(root, newFileName); if (result.Count > 0) { result.ToList().ForEach(item => { FileHelper.GetThumbnailImage(root, item.FileName, 3); item.FilePath = $"{scheme}://{host}/{ item.FilePath.Replace("wwwroot/", "")}"; }); return(result.FirstOrDefault()); } } fileResultInfo.FileName = newFileName; //Dev //fileResultInfo.FilePath = $"{scheme}://{host}:{port}/{ path.Replace("wwwroot/", "")}"; //Product fileResultInfo.FilePath = $"{scheme}://{host}/{ path.Replace("wwwroot/", "")}"; return(fileResultInfo); }
public async Task <FileUploadResultInfo> UploadTempFile(IFormFile file) { if (file == null || file.Length == 0) { return(null); } var fileResultInfo = new FileUploadResultInfo(); var extension = Path.GetExtension(file.FileName); var path = FileHelper.GetTempFilePath(extension); using (var stream = new FileStream(path, FileMode.Create)) { await file.CopyToAsync(stream); } fileResultInfo.FileName = Path.GetFileName(path); fileResultInfo.FilePath = path; return(fileResultInfo); }