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)); } }
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 } }); }
/// <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)); } }
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)); }
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 } }); }
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)); }
/// <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)); }