public Uri SaveFile(string folder, FileBase64 file) { CloudBlobContainer CandidateContainer; CloudBlockBlob blob; Uri result = null; CandidateContainer = BlobClient.GetContainerReference(folder); if (!CandidateContainer.Exists()) { CandidateContainer.Create(); CandidateContainer.SetPermissions( new BlobContainerPermissions { PublicAccess = BlobContainerPublicAccessType.Blob }); } byte[] Image = Convert.FromBase64String(file.Base64); using (MemoryStream stream = new MemoryStream(Image)) { blob = CandidateContainer.GetBlockBlobReference( string.Format("{0}.{1}", file.Name, file.Format) ); blob.UploadFromStream(stream); result = blob.Uri; } return(result); }
public async Task <IActionResult> ChangeAvatar([FromBody] FileBase64 file) { var bytes = Convert.FromBase64String(file.Base64File); using (MemoryStream ms = new MemoryStream(bytes)) { var formFile = new FormFile(ms, 0, ms.Length, "file", file.FileName) { Headers = new HeaderDictionary { { "Content-Disposition", string.Format("attachment; filename={0})", file.FileName) }, { "Content-Type", "multipart/form-data" } } }; var userId = _authServices.GetUserId() ?? 0; if (userId == 0) { return(BadRequest(MessageConstant.UserNotAllowed)); } var userResponse = await _userDetailService.GetDetailByUserId(userId); if (userResponse.Success) { AssignModelState(); var user = userResponse.Item; try { if (!String.IsNullOrWhiteSpace(user.Avatar)) { await _fileServices.DeleteAsync(user.Avatar); } var res = await _fileServices.UploadAsync(formFile); user.Avatar = res.Item.Path; var response = _userDetailService.Edit(user); if (response.Success) { return(Ok(response.Item)); } return(BadRequest(response.Message)); } catch (Exception ex) { return(BadRequest(ex.Message)); } } ms.Dispose(); } return(BadRequest("Error on Server")); }
public ActionResult <object> UploadFile() { if (Request.Form.Files.Count > 0) { if (Request.Form.Files[0].Length > 0) { IFormFile file = Request.Form.Files[0]; string InitialFileName = Request.Form.Files[0].FileName; string extension = Path.GetExtension(InitialFileName)?.ToLower(); string fileName = Guid.NewGuid().ToString() + extension; string basePath = @"D:\DH\DHWeb\Content\Template\ECFiles";//直接使用OA系统根目录 var filePath = FileBase64.CreateFilePath(basePath, fileName); var returnpath = Path.Combine("Content//Template//ECFiles//", filePath[0]); string path = Path.Combine(basePath, filePath[0]); using (var stream = System.IO.File.Create(path)) { #region 插入 try { file.CopyTo(stream); } catch (Exception e) { throw e; } #endregion } var data = new Hashtable { { "FilePath", returnpath }, { "FileName", InitialFileName } }; var result = new { code = 0, msg = "成功", data = data }; return(result.ToJson()); } else { var result = new { code = -1, msg = "上传的文件大小为0,请检查!" }; return(result.ToJson()); } } else { var result = new { code = -1, msg = "未检查到上传的文件" }; return(result.ToJson()); } }
public Task <FileBase64> Guardar(string FileName) { FileBase64 _fileBase64 = new FileBase64(); try { var policySave = RetryPolicy.Handle <Exception>().Or <NullReferenceException>(). WaitAndRetry(4, retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt)), (ex, time) => { _log.Warn($"Intenton Para guardar el archivo excel {time.Seconds}, {_fecha.FechaNow().Result}"); }); policySave.Execute(() => { Directorio(); var excelUbicacion = $@"{UbicacionDoc}/Excel/{FileName}.xlsx"; FileInfo excelFile = new FileInfo(excelUbicacion); excelFile.Directory.Create(); excel.SaveAs(excelFile); _log.Info($"Archivo guardado con exito {_fecha.FechaNow().Result}"); _fileBase64 = new FileBase64() { FileName = Path.GetFileName(excelUbicacion), Base64Data = Convert.ToBase64String(File.ReadAllBytes(excelUbicacion)) }; _log.Info($"Proceso de conversion Base64 {_fecha.FechaNow().Result}"); // File.Delete(excelUbicacion); // _log.Info($"Archivo elminado con exito {_fecha.FechaNow().Result}"); }); } catch (Exception ex) { _log.Warn($"Exception {ex.StackTrace}"); } Dispose(true); return(Task.FromResult(_fileBase64)); }