Exemplo n.º 1
0
        /// <summary>
        ///下载日志文件压缩包
        /// </summary>
        /// <returns></returns>
        public FileDto DownloadWebLogs()
        {
            //获取所有的日志文件的路径信息
            var logFiles = GetAllLogFiles();

            //生成名为WebSiteLogs.zip的压缩包
            var zipFileDto = new FileDto("WebSiteLogs.zip", MimeTypeNames.ApplicationZip);

            using (var outputZipFileStream = new MemoryStream())
            {
                using (var zipStream = new ZipArchive(outputZipFileStream, ZipArchiveMode.Create))
                {
                    foreach (var logFile in logFiles)
                    {
                        var entry = zipStream.CreateEntry(logFile.Name);
                        using (var entryStream = entry.Open())
                        {
                            using (var fs = new FileStream(logFile.FullName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite, 0x1000, FileOptions.SequentialScan))
                            {
                                fs.CopyTo(entryStream);
                                entryStream.Flush();
                            }
                        }
                    }
                }
                _dataTempFileCacheManager.SetFile(zipFileDto.FileToken, outputZipFileStream.ToArray());
            }



            return(zipFileDto);
        }
        /// <summary>
        ///     上传文件到缓存中
        /// </summary>
        /// <param name="file"></param>
        /// <returns></returns>
        public async Task <FileUploadOutputDto> UploadTempFile(IFormFile file)
        {
            await Task.Yield();

            //Check input
            if (file == null)
            {
                throw new Exception("File empty");
            }

            if (file.Length > AppConsts.MaxFileSize)
            {
                throw new Exception("File cannot be larger than 50mb");
            }

            byte[] fileBytes;
            using (var stream = file.OpenReadStream())
            {
                fileBytes = stream.GetAllBytes();
            }

            var tenantId = AbpSession.TenantId;

            var storedFile = new DataFileObject(tenantId, fileBytes.ToArray());

            _tempFileCacheManager.SetFile(storedFile.Id.ToString(), fileBytes.ToArray());

            return(new FileUploadOutputDto
            {
                FileName = file.FileName,
                FileToken = storedFile.Id.ToString(),
                FileSize = file.Length
            });
        }
Exemplo n.º 3
0
        public UploadProfilePictureOutputDto UploadProfilePicture(FileDto input)
        {
            try
            {
                var profilePictureFile = Request.Form.Files.First();

                //Check input
                if (profilePictureFile == null)
                {
                    throw new UserFriendlyException(L("ProfilePicture_Change_Error"));
                }

                //上传的图片超过大小限制
                if (profilePictureFile.Length > MaxProfilePictureSize)
                {
                    throw new UserFriendlyException(L("ProfilePicture_Warn_SizeLimit", AppConsts.MaxProfilePictureBytesUserFriendlyValue));
                }

                byte[] fileBytes;
                using (var stream = profilePictureFile.OpenReadStream())
                {
                    fileBytes = stream.GetAllBytes();
                }

                if (!ImageFormatHelper.GetRawImageFormat(fileBytes).IsIn(ImageFormat.Jpeg, ImageFormat.Png, ImageFormat.Gif))
                {
                    throw new Exception("请上传图片文件,仅接受Jpg、PNG、Gif三种格式!");
                }

                _dataTempFileCacheManager.SetFile(input.FileToken, fileBytes);

                using (var bmpImage = new Bitmap(new MemoryStream(fileBytes)))
                {
                    return(new UploadProfilePictureOutputDto
                    {
                        FileToken = input.FileToken,
                        FileName = input.FileName,
                        FileType = input.FileType,
                        Width = bmpImage.Width,
                        Height = bmpImage.Height
                    });
                }
            }
            catch (UserFriendlyException ex)
            {
                return(new UploadProfilePictureOutputDto(new ErrorInfo(ex.Message)));
            }
        }
 protected void Save(ExcelPackage excelPackage, FileDto file)
 {
     _dataTempFileCacheManager.SetFile(file.FileToken, excelPackage.GetAsByteArray());
 }