Exemple #1
0
        public async Task <FileResponseModel> DownloadFile(string fileName)
        {
            var response     = new FileResponseModel();
            var memoryStream = new MemoryStream();

            try
            {
                await _fileManager.StatObjectAsync(_bucketName, fileName);

                await _fileManager.GetObjectAsync(_bucketName, fileName,
                                                  (stream) =>
                {
                    stream.CopyTo(memoryStream);
                });

                memoryStream.Position = 0;
            }
            catch
            {
                response.IsSuccess = false;
                response.Message   = "Dosya bulunamadi.";
            }

            response.ContentType  = GetContentType(fileName);
            response.FileName     = fileName;
            response.MemoryStream = memoryStream;
            return(response);
        }
Exemple #2
0
        public async Task <FileResponseModel> SavePostContent(string folderName, IFormFile file)
        {
            var resourceUrl = $"{httpContextAccessor.HttpContext.Request.Scheme}://{httpContextAccessor.HttpContext.Request.Host}/{ Constant.FILE_PATH}/{folderName}";

            var rawPath = Path.Combine(hostingEnvironment.ContentRootPath, Constant.FILE_PATH + "/" + folderName);

            if (!Directory.Exists(rawPath))
            {
                Directory.CreateDirectory(rawPath);
            }


            var newFileName = $"{DateTime.Now.ToString("yyyyMMdd")}_{CommonHelper.NewGuid()}{Path.GetExtension(file.FileName).ToLower()}";
            var filePath    = Path.Combine(rawPath, newFileName);

            using (var fileStream = new FileStream(filePath, FileMode.Create))
                await file.CopyToAsync(fileStream);

            var url = $"{Constant.FILE_PATH}/{folderName}/{newFileName}";

            var response = new FileResponseModel
            {
                Url     = url,
                FullUrl = $"{resourceUrl}/{newFileName}",
            };

            return(response);
        }
        public async Task <FileResponseModel> File()
        {
            FileResponseModel res = new FileResponseModel();

            try
            {
                var  httpRequest = HttpContext.Current.Request;
                var  type        = int.Parse(httpRequest.Form["type"].ToString());
                var  scoid       = httpRequest.Form["coid"];
                Guid?coid        = null;
                if (!string.IsNullOrEmpty(scoid))
                {
                    coid = Guid.Parse(scoid.ToString());
                }
                foreach (string file in httpRequest.Files)
                {
                    HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created);
                    var postedFile = httpRequest.Files[file];
                    if (postedFile != null && postedFile.ContentLength > 1000)
                    {
                        //await _uow.File.UploadImgToS3(postedFile.InputStream, postedFile.FileName, type, coid, CurrentUserId);
                        res         = _uow.File.UploadImg(postedFile.InputStream, postedFile.FileName, type, coid, CurrentUserId);
                        res.message = "Upload thành công";
                        res.code    = 200;
                        return(res);
                    }
                    ;
                }
                res.code    = 0;
                res.message = "File upload không hợp lệ";
            }
            catch (BusinessException ex)
            {
                res.message = ex.Message;
            }
            catch (Exception ex)
            {
                if (ex.Message.Contains("Maximum request length"))
                {
                    res.message = "File ảnh của bản dung lượng vượt quá 5mb";
                }
                else
                {
                    res.message = Core.Entities.Resources.Messages.System_Err;
                }
                _log.Error(ex);
            }
            return(res);
        }
Exemple #4
0
        public async Task <FileResponseModel> SaveHasThumbnail(string folderName, IFormFile file)
        {
            var resourceUrl = $"{httpContextAccessor.HttpContext.Request.Scheme}://{httpContextAccessor.HttpContext.Request.Host}/{ Constant.FILE_PATH}/{folderName}";

            var rawPath = Path.Combine(Constant.FILE_PATH, folderName);

            if (!Directory.Exists(rawPath))
            {
                Directory.CreateDirectory(rawPath);
            }

            var newFileName = $"{DateTime.Now.ToString(Constant.FileTime)}{Path.GetExtension(file.FileName).ToLower()}";
            var filePath    = Path.Combine(rawPath, newFileName);

            using (var fileStream = new FileStream(filePath, FileMode.Create))
                await file.CopyToAsync(fileStream);


            var thumbnailFileName = $"t{newFileName}";;
            var thumbnailPath     = Path.Combine(rawPath, thumbnailFileName);

            var ms = new MemoryStream();

            file.CopyTo(ms);
            using (var fileStream = new FileStream(filePath, FileMode.Create, FileAccess.Write))
            {
                ms.WriteTo(fileStream);
                fileStream.Close();
                {
                    string ImageType = file.FileName.Substring(file.FileName.LastIndexOf('.') + 1).ToLower().Trim();
                    Image  image     = Image.FromStream(ms);
                    Image  thumb     = image.GetThumbnailImage(600, 450, () => false, IntPtr.Zero);
                    thumb.Save(Path.ChangeExtension(thumbnailPath, ImageType));
                }
                ms.Close();
            }

            var response = new FileResponseModel
            {
                Url              = filePath,
                FullUrl          = $"{resourceUrl}/{newFileName}",
                ThumbnailUrl     = thumbnailPath,
                ThumbnailFullUrl = $"{resourceUrl}/{thumbnailFileName}"
            };

            return(response);
        }
        public string AddUser(UserModel addUserModel)
        {
            try
            {
                if (addUserModel != null)
                {
                    FileManager       fileManager       = new FileManager();
                    FileResponseModel fileResponseModel = null;
                    if (addUserModel.File != null)
                    {
                        fileResponseModel = fileManager.SaveFile(addUserModel.File, _rootPath);
                    }

                    List <KeyValuePair <string, object> > param = new List <KeyValuePair <string, object> >()
                    {
                        new KeyValuePair <string, object>("@userName", addUserModel.UserName),
                        new KeyValuePair <string, object>("@roleId", addUserModel.RoleId),
                        new KeyValuePair <string, object>("@firstName", addUserModel.FirstName),
                        new KeyValuePair <string, object>("@lastName", addUserModel.LastName),
                        new KeyValuePair <string, object>("@email", addUserModel.Email),
                        new KeyValuePair <string, object>("@mobile", addUserModel.Mobile),
                        new KeyValuePair <string, object>("@dob", addUserModel.Dob),
                        new KeyValuePair <string, object>("@gender", addUserModel.Gender),
                        new KeyValuePair <string, object>("@createdBy", addUserModel.CreatedBy),
                        new KeyValuePair <string, object>("@photo", fileResponseModel?.FileFullpath ?? string.Empty)
                    };
                    List <string> tolist = new List <string>()
                    {
                        addUserModel.Email
                    };
                    return(DataExecutor.ExecuteScalar(UtilityConstant.Procedures.Mst_AddUser, param));
                }
                return(UtilityConstant.UserResponseStatus.NoDataFromClient);
            }
            catch (Exception ex)
            {
                return(UtilityConstant.UserResponseStatus.Error);
            }
        }
Exemple #6
0
        public async Task <FileResponseModel> Upload(IFormFile file)
        {
            var rawPath = Path.Combine(hostingEnvironment.ContentRootPath, Constant.FILE_PATH);

            if (!Directory.Exists(rawPath))
            {
                Directory.CreateDirectory(rawPath);
            }

            var newFileName = $"{DateTime.Now.ToString("yyyyMMdd")}_{CommonHelper.NewGuid()}{Path.GetExtension(file.FileName).ToLower()}";
            var filePath    = Path.Combine(rawPath, newFileName);

            using (var fileStream = new FileStream(filePath, FileMode.Create))
                await file.CopyToAsync(fileStream);

            var url      = $"{Constant.FILE_PATH}/{newFileName}";
            var response = new FileResponseModel
            {
                Url     = url,
                FullUrl = ToFullUrl($"/{url}")
            };

            return(response);
        }
Exemple #7
0
        public async Task <IActionResult> UploadSegmentFile()
        {   //==Form file Info ==
            var    formFile      = Request.Form.Files["file"];
            string correlationId = Request.Form["correlationId"];
            var    total         = Convert.ToInt32(Request.Form["totalCount"]);
            var    fileName      = Request.Form["fileName"];
            var    index         = Convert.ToInt32(Request.Form["index"]);
            string scopePath     = Request.Form["scopePath"];
            string category      = Request.Form["category"];

            var currentUserId        = HttpContext.CurrentUserId();
            var fileControlSetting   = _commonQueryService.GetFileControl();
            var newFileInfos         = new List <UploadFileResponseInfo>();
            FileResponseModel result = new FileResponseModel();

            logger.Info($"Begin to upload file. File count:{total}, current user:{HttpContext.CurrentUserName()}.");

            #region ==== Validate File Info =====
            if (index == 1)
            {
                UploadStatus validationResult = UploaderHelper.ValidationUploadFile(formFile.FileName, formFile.OpenReadStream(), fileControlSetting, true);
                if (validationResult != UploadStatus.ValidateSuccessful)
                {
                    logger.Warn($"Uploaded file is invalid. File name {formFile.Name}, size:{formFile.Length}, result:{validationResult}.");
                    return(Request.OK(new { msg = I18NEntity.GetString("GC_Common_Uploader_Failed_Message"), status = validationResult }));
                }
            }
            #endregion

            try
            {
                UploadFileRequestInfo info = new UploadFileRequestInfo()
                {
                    ScopePath     = !string.IsNullOrEmpty(scopePath) ? scopePath : ScopePath,
                    Category      = !string.IsNullOrEmpty(category) ? category : Category,
                    FileName      = fileName,
                    TotalCount    = total,
                    CorrelationId = !string.IsNullOrEmpty(correlationId) ? Guid.Parse(correlationId) : Guid.Empty,
                    Index         = index
                };

                if (total > 1)
                {
                    logger.Info($"Uploading Segment file {formFile.Name} to lcms.TotalCount:{info.TotalCount},current index:{info.Index}, CorrelationId:{info.CorrelationId}.");
                }
                else
                {
                    logger.Info($"Uploading file {formFile.Name} to lcms.");
                }

                UploadFileResponseInfo o = await _uploaderService.UploadFile(info, new Refit.StreamPart(formFile.OpenReadStream(), formFile.FileName));

                result.Info       = o;
                result.FileNumber = index;
                if (o.IsSucceed)
                {
                    //total file upload successfully
                    if (o.FileId != Guid.Empty)
                    {
                        logger.Info($"Uploading file {formFile.Name} to lcms succeed. File id:{o.FileId}.");
                        result.MergeResult = true;
                        o.Category         = Category;
                        result.ResponseFiles.Add(o);
                    }
                    else
                    {
                        result.MergeResult = false;
                    }
                }
                else
                {
                    logger.Warn($"Uploading file {formFile.Name} to lcms failed. File id:{o.FileId}, message:{o.ErrorMsg}.");
                    result.Msg = o.ErrorMsg;
                }
            }
            catch (TaskCanceledException ex)
            {
                logger.Error("Connection timed out and file upload failed. ", ex);
                return(Request.OK(new { msg = I18NEntity.GetString("GC_Common_Uploader_TimeOut_Message") }));
            }
            catch (ValidationException ex)
            {
                logger.Error("Validation file upload failed. ", ex);
                return(Request.OK(new { msg = I18NEntity.GetString("GC_Common_Uploader_Failed_Message"), ex.Status }));
            }
            catch (Exception ex)
            {
                logger.Error("Upload file to lcms server failed. ", ex);
            }

            return(Request.OK(result));
        }