public async Task <ActionResult <string> > Upload(IFormFile image) { try { var fileName = StringUtil.GenerateRandom(); var ext = Path.GetExtension(image.FileName); await using var ms = new MemoryStream(); await image.CopyToAsync(ms); ms.Seek(0, SeekOrigin.Begin); var request = new FileGrpcRequest { Content = ms.ToArray(), FileName = fileName + ext }; var response = await _fileGrpcService.AddFileAsync(request); if (response.IsOk) { var okObj = new { data = new { filePath = response.Url } }; return(Json(okObj)); } } catch (Exception ex) { _logger.LogError(ex, "File upload failed."); } var errorObj = new { error = "Server Error." }; return(Json(errorObj)); }
public async Task <FileGrpcResponse> AddFileAsync(FileGrpcRequest request, CallContext context = default) { var response = new FileGrpcResponse(); try { response.Url = await _rawFileService.AddRawFileAsync(request.FileName, request.Content); } catch (Exception ex) { _logger.LogError(ex, $"Add file failed, {JsonUtil.Serialize(request)}"); response.IsOk = false; response.Message = ex.Message; } return(response); }