/// <summary> /// Add a photo /// </summary> /// <returns></returns> public async Task <IHttpActionResult> Post() { // Check if the request contains multipart/form-data. if (!Request.Content.IsMimeMultipartContent("form-data")) { return(BadRequest("Unsupported media type")); } try { var provider = new CustomMultipartFormDataStreamProvider(GetTenantUploadFolder()); //await Request.Content.ReadAsMultipartAsync(provider); await Task.Run(async() => await Request.Content.ReadAsMultipartAsync(provider)); FileUploadResponseModel response = new FileUploadResponseModel(); var file = provider.FileData.FirstOrDefault(); if (file != null) { var locaFilePath = file.LocalFileName; var fileName = Path.GetFileName(locaFilePath); var extension = Path.GetExtension(locaFilePath); var copyFilePath = GetTenantUploadFolder() + @"\\" + Guid.NewGuid() + extension; if (!string.IsNullOrWhiteSpace(locaFilePath)) { File.Copy(locaFilePath, copyFilePath); } var fileInfo = new FileInfo(file.LocalFileName); response.FileId = fileInfo.GetFileNameWithoutExtension(); response.OriginalFileName = fileName; response.FileName = Path.GetFileName(copyFilePath); response.LocalFilePath = copyFilePath; response.IsSuccess = true; response.Message = "Success"; File.Delete(locaFilePath); } return(Ok(response)); } catch (Exception ex) { return(BadRequest(ex.GetBaseException().Message)); } }
public JsonResult SaveTempFileAndCrop(HttpPostedFileBase file, ImageCropModel cropArea, string configUniqueName) { var config = FileUploadDefinitions.GetByUniqueName(configUniqueName); if (config == null || !(config is ImageUploadConfig)) { throw new HttpException(400, "Invalid config"); } var imageConfig = (ImageUploadConfig)config; ImageFormat imageFormat; using (Image image = imageConfig.ProcessImage(file, cropArea.Rectangle, out imageFormat)) { FileWriterResponse response = FileHelper.SaveFileToTempFolder(config, file, image, imageFormat); return(Json(FileUploadResponseModel.FromFileWriterResponse(response))); } }
public async Task <IActionResult> UploadImportFile(IFormFile file, int portalId, int userId, ImportType importType) { List <string> headers = new List <string>(); BlobResponseModel blobResponseModel; if (file.Length <= 0) { return(BadRequest("The file is empty.")); } await using (Stream stream = file.OpenReadStream()) { blobResponseModel = await UploadToBlob( $"import-{Enum.GetName(typeof(ImportType), importType)?.ToLower()}-{portalId}-{(userId == -1 ? 0 : userId)}-{Guid.NewGuid()}", file.FileName, stream); } if (!blobResponseModel.Successful) { return(BadRequest($"There was an error importing your data: {blobResponseModel.Error}")); } await using (Stream stream = file.OpenReadStream()) { using StreamReader reader = new StreamReader(stream); string columnHeaders = reader.ReadLine(); if (columnHeaders != null) { headers = columnHeaders.Split(',').ToList(); } } FileUploadResponseModel response = new FileUploadResponseModel { ContainerName = blobResponseModel.ContainerName, Filename = blobResponseModel.Filename, Headers = headers }; return(Ok(response)); }
public JsonResult SaveTempFile(HttpPostedFileBase file, string configUniqueName) { DateTime?lastCheck = (DateTime?)CacheManagement.Get(_cacheName); if (!lastCheck.HasValue || DateTime.UtcNow > lastCheck.Value.AddDays(1)) { CacheManagement.Add(_cacheName, DateTime.UtcNow, DateTime.UtcNow.AddDays(1)); FileHelper.DeleteOldFilesFromTempFolder(); } var config = FileUploadDefinitions.GetByUniqueName(configUniqueName); if (config == null) { throw new HttpException(400, "Invalid config"); } FileWriterResponse response = FileHelper.SaveFileToTempFolder(config, file); return(Json(FileUploadResponseModel.FromFileWriterResponse(response))); }
public async Task <IHttpActionResult> Delete(string fileName) { if (!FileExists(fileName)) { return(NotFound()); } try { var filePath = Directory.GetFiles(GetTenantUploadFolder(), fileName) .FirstOrDefault(); await Task.Factory.StartNew(() => { if (filePath != null) { File.Delete(filePath); } }); var result = new FileUploadResponseModel { IsSuccess = true, Message = fileName + "deleted successfully" }; return(Ok(new { message = result.Message })); } catch (Exception ex) { var result = new FileUploadResponseModel { IsSuccess = false, Message = "error deleting fileName " + ex.GetBaseException().Message }; return(BadRequest(result.Message)); } }
public async Task <IHttpActionResult> UploadLogo() { if (!Request.Content.IsMimeMultipartContent("form-data")) { return(BadRequest("Unsupported media type")); } try { var provider = new CustomMultipartFormDataStreamProvider(FileHelper.TenantUploadDirectory); //await Request.Content.ReadAsMultipartAsync(provider); await Task.Run(async() => await Request.Content.ReadAsMultipartAsync(provider)); FileUploadResponseModel response = new FileUploadResponseModel(); var file = provider.FileData.FirstOrDefault(); if (file != null) { var locaFilePath = file.LocalFileName; var fileName = Path.GetFileName(locaFilePath); var extension = Path.GetExtension(locaFilePath); var fileId = Guid.NewGuid(); var copyFilePath = FileHelper.TenantUploadDirectory + @"\\" + fileId + extension; if (!string.IsNullOrWhiteSpace(locaFilePath)) { File.Copy(locaFilePath, copyFilePath); } //var fileInfo = new FileInfo(file.LocalFileName); //using (Image img = Image.FromFile(locaFilePath)) //using (Bitmap bmp = new Bitmap(img)) //{ // for (int x = 0; x < img.Width; x++) // { // for (int y = 0; y < img.Height; y++) // { // Color c = bmp.GetPixel(x, y); // if (c.R == 255 && c.G == 255 && c.B == 255) // bmp.SetPixel(x, y, Color.FromArgb(0)); // } // } // copyFilePath = copyFilePath + ".png"; // bmp.Save(copyFilePath, ImageFormat.Png); //} response.FileId = Path.GetFileNameWithoutExtension(copyFilePath); response.OriginalFileName = fileName; response.FileName = Path.GetFileName(copyFilePath); response.FileType = file.Headers.ContentType; response.LocalFilePath = FileHelper.TenantReadPath + response.FileName; response.IsSuccess = true; response.Message = "Success"; if (locaFilePath != null) { File.Delete(locaFilePath); } var company = _service.GetEntityById(User.Identity.GetCompanyId()); company.LogoName = response.OriginalFileName; company.LogoFileType = response.FileType.ToString(); company.LogoPath = response.LocalFilePath; _service.EditAsTenant(company); response.CompanyId = company.Id; response.TenantId = company.TenantId; } return(Ok(response)); } catch (Exception ex) { return(BadRequest(ex.GetBaseException().Message)); } }