コード例 #1
0
    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));
    }
コード例 #2
0
    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);
    }