由于尝试使用多部分表单数据内容将图像上传到服务器而损坏的 png



我正在尝试从我的 Xamarin iOS 应用程序上传 png。 服务器返回代码 200 和该图像的链接。当我尝试将此链接复制粘贴到浏览器时,它会显示损坏的图像模板。 当我使用邮递员尝试此步骤时,一切都很好。服务器给了我工作链接。复制粘贴后,我可以在浏览器中看到我的图像。

我多次比较了邮递员的标题。没有任何帮助。我还检查了字节数组在我的应用程序中是否有效。是的,它是有效的。我用它制作了图像并将其显示在手机上。

我的要求:

client.DefaultRequestHeaders.Add("Accept", "*/*");
client.DefaultRequestHeaders.Add("ContentType", "multipart/form-data");
client.DefaultRequestHeaders.Add("Connection", "keep-alive");
var imageContent = new ByteArrayContent(imgBytes, 0, imgBytes.Length);
imageContent.Headers.ContentType = MediaTypeHeaderValue.Parse("image/png");
using (var formData = new MultipartFormDataContent())
{
formData.Add(imageContent, "pic", "picture.png");
var result = await client.PostAsync($"{Constants.MainUrl}{"/api/Profile/EditProfilePic"}", formData);
var resContent =await result.Content.ReadAsStringAsync();
return result;
}

我的字节转换:

using (NSData imageData = _currentImg.AsPNG())
{
Byte[] imgByteArray = new Byte[imageData.Length];

将图像转换为字节数组时需要此代码。正好System.Runtime.InteropServices...完整代码如下:

Byte[] imgByteArray = new Byte[imageData.Length]; System.Runtime.InteropServices.Marshal.Copy(imageData.Bytes, imgByteArray, 0, Convert.ToInt32(imageData.Length));

最新更新