谷歌驱动器,上传内存流
本文关键字:内存 驱动器 谷歌 | 更新日期: 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
变量来说是一个有点误导性的名称......