如何将HTTPPostedFileBase转换为Google Drive API文件

时间:2019-11-25 15:12:57

标签: c# asp.net-mvc file google-drive-api

我想做的事情很简单,但是我找不到答案。

我有一个HTTPPostedFileBase newfile,我想将其转换为Google.Apis.Drive.v3.Data.File,以便可以将其上传到Google云端硬盘。但是我找不到将HTTPPostedFileBase转换为Google Drive文件的方法。我使用的是HTTPPostedFileBase,因为这是一个Asp.Net网站,用户可以在其中上传要放入Google驱动器的文件。这是我的代码:

//newfile: HTTPPostedFileBase
Google.Apis.Drive.v3.Data.File deliverable = new Google.Apis.Drive.v3.Data.File(newfile); //This line gives an error, no matching constructor
deliverable.Parents.Add(folderID);
FilesResource.CreateRequest request = service.Files.Create(deliverable);
request.Execute();

1 个答案:

答案 0 :(得分:1)

了解了如何执行此操作,但最终不涉及转换文件类型。取而代之的是,将请求设为不同的类型,并使用不同的构造函数,其中“ deliverable”变量提供元数据,而HTTPPostedFileBase的输入流则提供文件本身。

//newfile: HTTPPostedFileBase
Google.Apis.Drive.v3.Data.File deliverable = new Google.Apis.Drive.v3.Data.File();
deliverable.Parents = new List<string>();
deliverable.Name = newfile.FileName;
deliverable.Parents.Add(folderID);
FilesResource.CreateMediaUpload request = service.Files.Create(deliverable, newfile.InputStream, newfile.ContentType);
request.Upload();