我想构建一个 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/