c# - 如何构建base64 rest web服务来上传带有其他信息的图像文件

标签 c# .net web-services file-upload

我想构建一个 Rest Web 服务(在 .NET 中)来上传包含名称、描述、时间等其他信息的图像文件。

所以我写了这段代码:

[Route("SaveDocument")]
[HttpPost]
public HttpResponseMessage SaveDocument(Stream fileContents)
{

    byte[] buffer = new byte[10000];
    int bytesRead, totalBytesRead = 0;
    do
    {
    bytesRead = fileContents.Read(buffer, 0, buffer.Length);
    totalBytesRead += bytesRead;
    } while (bytesRead > 0);
    Console.WriteLine("Service: Received file {0} with {1} bytes", fileName, totalBytesRead);

}

我想要传递 Base64 文件,但我做不到。

我们能帮我吗?

最佳答案

您应该将您的 base64 数据与您的附加信息一起包装在一个 JSON 对象中,并在您的 REST 后端对其进行解析:

{
    "fileName": "example.jpg",
    "content": "base64-content",
    "creationTime": "2015-10-27T00:10:00"
}

在服务器端为您的文件创建一些模型,并将您的响应解析为具有以下内容的对象:https://msdn.microsoft.com/en-us/library/hh674188.aspx

然后您可以使用以下命令将文件保存到后端磁盘:

File.WriteAllBytes(@"c:\yourfile", Convert.FromBase64String(yourBase64String));

关于c# - 如何构建base64 rest web服务来上传带有其他信息的图像文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33370872/

相关文章:

web-services - 如何从客户端应用程序针对 Azure Active Directory 进行身份验证?

c# - 从字典中排除单词

c# - 无法使用 Environment.GetResourceString 静态方法

c# - 从最小/最大场景计算步骤,步骤应该是很好的数字 c#

.net - 桌面单声道应用和 MVC/MVP 框架

c# - .NET/C#中swagger json规范到静态html文件的转换

c# - 访问 MarkupExtension.ProvideValue 中的构造函数参数

c# - 使用日期时间和日期选择器

c# - 您可以从 Windows 窗体应用程序公开 XML 网络服务吗?

c# - 如何将 JSON 转换为 C# 类?