Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在postman中上载类似于表单数据的文件_C#_Asp.net Core_Http Post - Fatal编程技术网

C# 在postman中上载类似于表单数据的文件

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\

我在这里找到了一些给出例子的答案,但似乎没有一个对我有用。。 这是我的邮递员的样子:

在代码中,我从URL下载图片,将其保存为文件夹中的jpeg格式,然后尝试通过POST请求上载该图像,如下所示:

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”);