谷歌驱动器,上传内存流

本文关键字:内存 驱动器 谷歌 | 更新日期: 2023-09-27 18:37:22

这段代码运行良好:

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();
}

但是当我尝试上传从System.Drawing.Image收到的MemoryStream时,我得到了一个谷歌异常: '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();
}

任何人都可以帮我修复代码吗?

谷歌驱动器,上传内存流

我不想说为什么你会收到这个特定的错误,但是在你调用Save之后,流的"光标"在数据的末尾,所以没有数据供Insert读取。您应该倒带流:

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

我还建议fileStream对于MemoryStream变量来说是一个有点误导性的名称......