2015-01-13 5 views
0

Этот код работает хорошо:Google диск, загрузить MemoryStream

img.Save("111.png", System.Drawing.Imaging.ImageFormat.Png); 
using (MemoryStream fileStream = new MemoryStream(System.IO.File.ReadAllBytes("111.png"))) 
{ 
    FilesResource.InsertMediaUpload request = _drive.Files.Insert(item, fileStream, mimeType); 
    request.Upload(); 
} 

Но когда я пытаюсь загрузите MemoryStream получил от System.Drawing.Image, я получаю Google Exception: 'The given header was not found.'

Код:

System.Drawing.Image img = myImgObj; 
using (MemoryStream fileStream = new MemoryStream())) 
{   
    img.Save(fileStream, System.Drawing.Imaging.ImageFormat.Png); 
    FilesResource.InsertMediaUpload request = _drive.Files.Insert(item, fileStream, mimeType); 
    request.Upload(); 
} 

Может кто-нибудь помочь мне исправить код?

ответ

1

Я не хотел бы сказать, почему вы не получаете эту конкретную ошибку, но после того, как вы назвали Save, «Курсор» потока находится в конце данных, так что нет данных для Insert в читать. Вы должны перемотать поток:

img.Save(...); 
fileStream.Position = 0; 

Я бы также предположить, что fileStream является несколько вводит в заблуждение название для MemoryStream переменной ...

Смежные вопросы