Я пытаюсь загрузить файлы в API hubspot. https://developers.hubspot.com/docs/methods/files/post_files Все выглядит нормально, когда я смотрю в CRM, за исключением того, что некоторые имена файлов выглядят странно.
Файлы создаются и получают размер файла, но повреждены, потому что я не могу открыть их или загрузить.
My метод выглядит так
private async Task<HsCreateFileResponse> UploadAttachment(string pStream, string pFilename)
{
string url = API_BASE_URL + "filemanager/api/v2/files?hapikey=" + API_KEY;
string path = @"C:\Temp filer\";
HttpClient client = new HttpClient();
var content = new MultipartFormDataContent();
content.Headers.Add("hidden", "true");
using (var s = new MemoryStream())
{
using (var writer = new StreamWriter(s))
{
writer.Write(pStream);
s.Position = 0;
using (var fs = new FileStream(path + pFilename, FileMode.Create))
{
s.CopyTo(fs);
}
writer.Flush();
}
}
using (var fs = new FileStream(path + pFilename, FileMode.Open, FileAccess.Read))
{
byte[] bytes = new byte[fs.Length];
int numBytesToRead = (int)fs.Length;
int numBytesRead = 0;
while (numBytesToRead > 0)
{
int n = fs.Read(bytes, numBytesRead, numBytesToRead);
if (n == 0)
{
break;
}
numBytesRead += n;
numBytesToRead -= n;
}
numBytesToRead = bytes.Length;
System.Threading.Thread.Sleep(100);
content.Add(new StreamContent(new MemoryStream(bytes)), "files", pFilename);
var res = await client.PostAsync(url, content);
return JsonConvert.DeserializeObject<HsCreateFileResponse>(await res.Content.ReadAsStringAsync());
}
}