C# 在postman中上载类似于表单数据的文件
我在这里找到了一些给出例子的答案,但似乎没有一个对我有用。。 这是我的邮递员的样子: 在代码中,我从URL下载图片,将其保存为文件夹中的jpeg格式,然后尝试通过POST请求上载该图像,如下所示:C# 在postman中上载类似于表单数据的文件,c#,asp.net-core,http-post,C#,Asp.net Core,Http Post,我在这里找到了一些给出例子的答案,但似乎没有一个对我有用。。 这是我的邮递员的样子: 在代码中,我从URL下载图片,将其保存为文件夹中的jpeg格式,然后尝试通过POST请求上载该图像,如下所示: var fileName = image.PhotoId + ".jpeg"; await Task.WhenAll(client.DownloadFileTaskAsync(new Uri(image.ImageUrl), @"wwwroot\
var fileName = image.PhotoId + ".jpeg";
await Task.WhenAll(client.DownloadFileTaskAsync(new Uri(image.ImageUrl), @"wwwroot\images\"+fileName));
var files = Directory.GetFiles(@"wwwroot\images\", "*.jpeg");
var filePath = Path.Combine(@"wwwroot\images\", fileName);
using var stream = File.OpenRead(filePath);
var file_content = new ByteArrayContent(new StreamContent(stream).ReadAsByteArrayAsync().Result);
var formData = new MultipartFormDataContent();
formData.Add(file_content, "file", fileName);
var res = await clientAsync.PostAsync(url, formData);
问题是我在代码中得到的响应是错误的..:
{“错误代码”:6,“错误消息”:“对不起,请尝试其他图片”}
这种类型的响应与我在邮递员上尝试上载pdf而不是jpeg时得到的响应相同,因此我猜文件在代码中的某个地方被损坏了
我很想知道问题出在哪里 尝试使用
var file_content=newbytearraycontent(file.ReadAllBytes(filePath));file_content.Headers.ContentType=新的MediaTypeHeaderValue(“图像/jpeg”)
同时删除任务。当所有
因为只有一个参数无效时,您是否检查了下载的图像是否正确?首先尝试使用与《邮递员》中相同的图像。尼西:它在@Kalten中起作用了!..ReadAllBytes与new StreamContent(stream).ReadAsByteArrayAsync()的区别是什么。结果两者都返回字节您应该尝试使用var file\u content=new StreamContent(file.OpenRead(filePath))
。由于它应该对内存更友好,所以它也可以工作,所以唯一的问题是文件_content.Headers.ContentType=new MediaTypeHeaderValue(“image/jpeg”);