我目前正在开发一个c# web。对于特定的调用,我需要使用ajax调用向API发送2个图像,以便API可以将它们保存为数据库中的var二进制(Max)。
Image对象中提取HttpContent或byte[]?-
var authToken = $("#AuthToken").val();
var formData = new FormData($('form')[0]);
debugger;
$.ajax({
url: "/api/obj/Create/",
headers: { "Authorization-Token": authToken },
type: 'POST',
xhr: function () {
var myXhr = $.ajaxSettings.xhr();
return myXhr;
},
data: formData,
cache: false,
contentType: false,
processData: false
});-
public async Task<int> Create(HttpContent content)
{
if (!content.IsMimeMultipartContent())
{
throw new UnsupportedMediaTypeException("MIME Multipart Content is not supported");
}
return 3;
}发布于 2015-07-02 18:00:46
if (!content.IsMimeMultipartContent())
{
throw new UnsupportedMediaTypeException("MIME Multipart Content is not supported");
}
var uploadPath = **whatever**;
if (!Directory.Exists(uploadPath))
{
Directory.CreateDirectory(uploadPath);
}
var provider = new MultipartFormDataStreamProvider(uploadPath);
await content.ReadAsMultipartAsync(provider);
return File.ReadAllBytes(provider.FileData[0].LocalFileName);发布于 2015-06-30 20:45:02
HttpContent有一个异步方法,它返回ByteArray即(ByteArray的任务)
Byte[] byteArray = await Content.ReadAsByteArrayAsync();可以同步运行该方法。
Byte[] byteArray = Content.ReadAsByteArrayAsync().Result;发布于 2015-06-30 20:45:40
您可以使用HttpContent.ReadAsByteArrayAsync
byte[] bytes = await response.Content.ReadAsByteArrayAsync();或者,您可以用HttpContent.ReadAsStreamAsync读取内容并从中提取到byte[]:
var stream = await response.Content.ReadAsStreamAsync();
using (var memoryStream = new MemoryStream())
{
await stream.CopyToAsync(memoryStream);
return memoryStream.ToArray();
}https://stackoverflow.com/questions/31147279
复制相似问题