public async Task <ActionResult> UploadFile(OrderViewModel order) { var currentUser = _applicationUserService.GetUserById(Guid.Parse(User.Identity.GetUserId())); FileViewModel fileViewModel = new FileViewModel(); HttpPostedFileBase file = Request.Files[0]; fileViewModel.OrderId = order.Id; fileViewModel.FileName = Path.GetFileName(file.FileName); fileViewModel.FileType = file.ContentType; using (var binaryReader = new BinaryReader(file.InputStream)) { fileViewModel.Data = binaryReader.ReadBytes(file.ContentLength); } FileDTO.FileDTO fileDTO = _mapper.Map <FileViewModel, FileDTO.FileDTO>(fileViewModel); ServerRequest result = await _fileStorageService.UploadFileAsync(fileDTO); if (!result.ErrorOccured) { s_logger.Info("User " + currentUser.Id + " upload file "); return(RedirectToAction("GetTakenOrders", "Musician")); } else { s_logger.Error("Error when user " + currentUser.Id + " try to upload file "); ViewBag.Error = result.Message; return(RedirectToAction("GetTakenOrders", "Musician")); } }
// POST api/values public async void PostFile(FileDTO.FileDTO fileDTO) { string folderPath = System.Web.HttpContext.Current.Server.MapPath("~\\Files" + $"\\{fileDTO.OrderId}"); Directory.CreateDirectory(folderPath); using (FileStream fileStream = new FileStream(Path.Combine(folderPath, fileDTO.FileName), FileMode.Create)) { await fileStream.WriteAsync(fileDTO.Data, 0, fileDTO.Data.Length); } }
public async Task <ServerRequest> UploadFileAsync(FileDTO.FileDTO fileDTO) { var serverRequest = new ServerRequest(); try { HttpClient _client = new HttpClient(); _client.DefaultRequestHeaders.Accept.Clear(); _client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/bson")); MediaTypeFormatter bsonFormatter = new BsonMediaTypeFormatter(); await _client.PostAsync("http://files.localhost.net/api/values/PostFile?id", fileDTO, bsonFormatter); return(serverRequest); } catch { serverRequest.ErrorOccured = true; serverRequest.Message = "Error was occcured when you try Upload File"; return(serverRequest); } }