【发布时间】:2017-05-31 06:41:30
【问题描述】:
我需要使用 api 将图像上传到服务器。
现在我正在使用System.Net.Http;
byte[] lFileBytes= DependencyService.Get<IFileHelper>().ReadAllBytes(ImagePath);
ByteArrayContent lFileContent = new ByteArrayContent(lFileBytes,0,lFileBytes.Length);
lFileContent.Headers.ContentDisposition = ContentDispositionHeaderValue.Parse("form-data");
lFileContent.Headers.ContentType=new MediaTypeHeaderValue("image/jpg");
lFileContent.Headers.ContentDisposition.Parameters.Add(new NameValueHeaderValue("name","file"));
lFileContent.Headers.ContentDisposition.Parameters.Add(new NameValueHeaderValue("filename", "9.jpg"));
lFileContent.Headers.ContentLength= lFileBytes.Length;
lContent.Add(lFileContent);
public byte[] ReadAllBytes(string path) {
using (var streamReader = new StreamReader(path))
{
using (var memoryStream = new MemoryStream())
{
streamReader.BaseStream.CopyTo(memoryStream);
return memoryStream.ToArray();
}
}
}
发送请求后出现错误Type file is invalid
我在想byte[] ReadAllBytes(string path) 的问题
对于请求,我可以使用 Stream 或 byte[]
请帮忙
更新
lRequestResponse = await lHttpClient.PostAsync("URL", lContent);
【问题讨论】:
-
尝试在
MemoryStream块的第一行设置streamReader.Position = 0。可能是这样的 -
@user1,streamReader 没有 Position 属性,可能是 memoryStream?但它不起作用;
-
您的上传代码在哪里?你用什么方法?你也有你的服务器方法的样本吗? Fiddler 能用吗?
-
@Rohit 更新上传代码,POST。我没有服务器部分。我使用“邮递员”进行 api 测试。
标签: c# api xamarin xamarin.forms