コード例 #1
0
        /// <summary>
        /// 上传文件
        /// TODO:待优化
        /// </summary>
        /// <returns></returns>
        public async Task UploadFileAsync()
        {
            try
            {
                var profilePictureFile = Request.Form.Files.First();

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

                var fileLength = profilePictureFile.Length;
                //if (fileLength > MaxProfilePictureSize)
                //{
                //    throw new UserFriendlyException(L("UploadFileLengthExceedsMaxLength", MaxProfilePictureSize));
                //}

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

                var fileInfo = new FileInfo(profilePictureFile.FileName);

                var fileName = fileInfo.Name.Split('.')[0];

                // 存放文件夹:上传地址+时间戳
                var folder = _appFolderConfig.UploadFileFolder + Path.DirectorySeparatorChar + DateTimeHelper.GetDateString();
                DirectoryHelper.CreateIfNotExists(folder);

                var filePath = Path.Combine(folder, fileName + fileInfo.Extension);
                // 删除原文件
                FilesHelper.DeleteIfExsit(filePath);

                // 写入文件
                await System.IO.File.WriteAllBytesAsync(filePath, fileBytes);

                // 记录
                var uploadFile = new UploadFileEditModel(fileName, fileLength, folder, fileInfo.Extension.Replace(".", ""));
                await _filesService.InsertForUploadFileAsync(uploadFile);

                //using (var bmpImage = new Bitmap(tempFilePath))
                //{
                //    return new UploadProfilePictureOutputDto
                //    {
                //        FileName = tempFileName,
                //        Width = bmpImage.Width,
                //        Height = bmpImage.Height
                //    };
                //}
            }
            catch (UserFriendlyException ex)
            {
                throw new UserFriendlyException(ex.Message);
            }
        }
コード例 #2
0
        public async Task InsertForUploadFileAsync(UploadFileEditModel editModel)
        {
            var entity = ObjectMapper.Map <UploadFile>(editModel);

            await _uploadFile.InsertAsync(entity);
        }