Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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"));
        }
Ejemplo n.º 3
0
        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());
            }
        }
Ejemplo n.º 4
0
        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));
        }