public async Task <IActionResult> UploadImage(IFormFile image)
        {
            if (image == null || image.Length == 0)
            {
                return(BadRequest());
            }

            var filePath = Path.GetTempFileName();

            using (var stream = new FileStream(filePath, FileMode.Create))
                await image.CopyToAsync(stream);

            UploadImageInput input = new UploadImageInput()
            {
                OriginalFileName = image.FileName,
                ContentType      = image.ContentType,
                LocalPath        = filePath
            };

            Result <UploadImageOutput> result =
                await _fileUploader.UploadImageAsync(input);

            if (result.Success)
            {
                return(Ok(result));
            }
            else
            {
                return(BadRequest(result));
            }
        }
Exemple #2
0
        public async Task <Result <UploadImageOutput> > UploadImageAsync(UploadImageInput input)
        {
            if (!IsContentTypeValid(input.ContentType))
            {
                return new Result <UploadImageOutput>()
                       {
                           Success = false,
                           Errors  = new List <Error>()
                           {
                               new Error(ErrorCode.UnacceptableContentType)
                           }
                       }
            }
            ;

            Image image = await _imageService.CreateImageAsync(
                input.LocalPath, input.ContentType, input.OriginalFileName);

            image.Id = Guid.NewGuid().ToString();
            return(new Result <UploadImageOutput>()
            {
                Success = true,
                Data = new UploadImageOutput()
                {
                    Image = image
                }
            });
        }
Exemple #3
0
        /// <summary>
        /// 上传图片
        /// </summary>
        /// <param name="input">上传图片请求</param>
        /// <returns></returns>
        public async Task <string> UploadImage(UploadImageInput input)
        {
            var fileName = string.Format("{0}-{1}.{2}", _idGenerator.CreateId().ToString(), DateTime.Now.ToString(CommConstant.FullTimeFormatString), "jpg");
            var key      = _optionsAccessor.OssPatientDir + input.Folder + "/" + fileName;
            var mimeType = GetContentTypeBySuffix(Path.GetExtension(fileName));

            using (var stream = new MemoryStream(input.AvatarBuffer))
            {
                return(await PutObject(stream, key, mimeType));
            }
        }
Exemple #4
0
        public async Task<List<UploadImageInput>> ImgFromDataUploadAsync()
        {
            if (!Request.Content.IsMimeMultipartContent())
                throw new UserFriendlyException("上传格式不是multipart/form-data");

            //创建保存上传文件的物理路径
            var root = System.Web.Hosting.HostingEnvironment.MapPath(GetUploadSaveImgPath());

            //如果路径不存在,创建路径  
            if (!Directory.Exists(root)) Directory.CreateDirectory(root);

            var provider = new MultipartFormDataStreamProvider(root);

            //读取 MIME 多部分消息中的所有正文部分,并生成一组 HttpContent 实例作为结果
            await Request.Content.ReadAsMultipartAsync(provider);

            List<UploadImageInput> uploadFileResultList = new List<UploadImageInput>();

            foreach (var file in provider.FileData)
            {
                //获取上传文件名 这里获取含有双引号'" '
                string fileName = file.Headers.ContentDisposition.FileName.Trim('"');
                //获取上传文件后缀名
                string fileExt = fileName.Substring(fileName.LastIndexOf('.'));

                FileInfo fileInfo = new FileInfo(file.LocalFileName);

                if (fileInfo.Length > 0 && fileInfo.Length <= GetUploadImgMaxByte())
                {
                    if (String.IsNullOrEmpty(fileExt) || Array.IndexOf(GetUploadImgType().Split(','), fileExt.Substring(1).ToLower()) == -1)
                    {
                        fileInfo.Delete();
                        throw new UserFriendlyException("上传的文件格式不支持");
                    }
                    else
                    {
                        UploadImageInput uploadFile = new UploadImageInput();
                        uploadFile.Id = Guid.NewGuid();
                        uploadFile.NAME = fileName;
                        uploadFile.URL = GetUploadSaveImgPath() + uploadFile.Id.ToString() + fileExt;

                        fileInfo.MoveTo(Path.Combine(root, uploadFile.Id.ToString() + fileExt));
                        uploadFileResultList.Add(uploadFile);
                        _imageAppService.UploadImage(uploadFile);
                    }
                }
                else
                {
                    fileInfo.Delete();
                    throw new UserFriendlyException("上传文件的大小不符合");
                }
            }
            return uploadFileResultList;
        }
        /// <summary>
        /// 上传图片
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task <WebAPIOutput <string> > UploadImage(UploadImageInput input)
        {
            var request = new RestRequest();

            request.RequestFormat  = DataFormat.Json;
            request.JsonSerializer = new RestSharpJsonSerializer();
            request.Method         = Method.POST;
            request.Resource       = "/api/Oss/UploadImage";
            request.AddBody(input);

            return(await ExecuteAsync <WebAPIOutput <string> >(request));
        }
Exemple #6
0
        public Rtn <Enclosure> uploadImage([FromForm] UploadImageInput input)
        {
            var strArr = input.filename.Split(".");
            var ext    = strArr.Length > 0 ? strArr[strArr.Length - 1] : "";
            var url    = this.SaveImage(input.base64, "test");
            var file   = new Enclosure {
                fjName = input.filename, fjAddress = url, fjType = ext
            };

            this.oaContext.enclosures.Add(file);
            this.oaContext.SaveChanges();
            return(Rtn <Enclosure> .Success(file));

            // return CommonRtn.Success(new Dictionary<string, object> { { "url", url } });
        }
Exemple #7
0
        public async Task <Result <UploadImageOutput> > UploadImageAsync(IFormFile image)
        {
            if (image == null || image.Length == 0)
            {
                return(null);
            }

            var filePath = Path.GetTempFileName();

            using (var stream = new FileStream(filePath, FileMode.Create))
                await image.CopyToAsync(stream);

            UploadImageInput input = new UploadImageInput()
            {
                OriginalFileName = image.FileName,
                ContentType      = image.ContentType,
                LocalPath        = filePath
            };

            return(await UploadImageAsync(input));
        }
 public async Task <WebAPIOutput <string> > UploadImage([FromBody] UploadImageInput input)
 {
     return(await _ossService.UploadImage(input));
 }
Exemple #9
0
        /// <summary>
        /// 上传图片
        /// </summary>
        /// <param name="input">上传图片请求</param>
        /// <returns></returns>
        public async Task <WebAPIOutput <string> > UploadImage(UploadImageInput input)
        {
            var avatar = await _ossRepository.UploadImage(input);

            return(string.IsNullOrEmpty(avatar) ? WebAPIOutput <string> .Fail("上传失败") : WebAPIOutput <string> .Success(CommConstant.OssUrl + avatar));
        }