gpt4 book ai didi

c# - HttpClient StreamContent 附加文件名两次

转载 作者:太空狗 更新时间:2023-10-29 22:32:34 30 4
gpt4 key购买 nike

我正在使用 Microsoft Http 客户端库从 Windows Phone 8 向服务器发出多部分请求。它包含一个具有 json 字符串的字符串内容和一个具有图像流的流内容。现在我得到状态 OK 并在服务器上请求命中。但日志显示服务器无法获取图像的文件名。

content.Add(new StreamContent(photoStream), "files", fileName);

其中 photoStream 是图像流,“files”是内容的名称,file name 是图像文件的名称。

因此 header 值必须是:

Content-Disposition: form-data; name=files; filename=image123.jpg

但实际上是:

Content-Disposition: form-data; name=files; filename=image123.jpg; filename*=utf-8''image123.jpg

为什么要附加“; filename*=utf-8''image123.jpg”部分。有问题吗?

请告诉我无法从 WP8 上传图片的任何原因/可能性。

最佳答案

using (var content = new MultipartFormDataContent())
{
content.Add(CreateFileContent(imageStream, fileName, "image/jpeg"));
}

private StreamContent CreateFileContent(Stream stream, string fileName, string contentType)
{
var fileContent = new StreamContent(stream);
fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data")
{
Name = "\"files\"",
FileName = "\"" + fileName + "\""
};
fileContent.Headers.ContentType = new MediaTypeHeaderValue(contentType);
return fileContent;
}

关于c# - HttpClient StreamContent 附加文件名两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20395455/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com