/// <summary> /// Create a new file and return it. /// </summary> public static Google.Apis.Drive.v2.Data.File InsertResource(Google.Apis.Drive.v2.DriveService service, IAuthenticator auth, String title, String description, String mimeType, String content) { // File's metadata. Google.Apis.Drive.v2.Data.File body = new Google.Apis.Drive.v2.Data.File(); body.Title = title; body.Description = description; body.MimeType = mimeType; byte[] byteArray = Encoding.UTF8.GetBytes(content); MemoryStream stream = new MemoryStream(byteArray); Google.Apis.Drive.v2.FilesResource.InsertMediaUpload request = service.Files.Insert(body, stream, mimeType); request.Upload(); var file = request.ResponseBody; Permission newPermission = new Permission(); newPermission.Type = "anyone"; newPermission.Role = "reader"; newPermission.Value = ""; newPermission.WithLink = true; service.Permissions.Insert(newPermission, file.Id).Fetch(); return(file); }
/// <summary> /// Create a new file and return it. /// </summary> public static Google.Apis.Drive.v2.Data.File InsertResource(Google.Apis.Drive.v2.DriveService service, IAuthenticator auth, String title, String description, String mimeType, String content) { // File's metadata. Google.Apis.Drive.v2.Data.File body = new Google.Apis.Drive.v2.Data.File(); body.Title = title; body.Description = description; body.MimeType = mimeType; byte[] byteArray = Encoding.ASCII.GetBytes(content); MemoryStream stream = new MemoryStream(byteArray); Google.Apis.Drive.v2.FilesResource.InsertMediaUpload request = service.Files.Insert(body, stream, mimeType); request.Upload(); return(request.ResponseBody); }
public async Task <ActionResult> UploadGoogleFileAsync(HttpPostedFileBase file, FileModel document, CancellationToken cancellationToken) { var result = await new AuthorizationCodeMvcApp(this, new AppFlowMetadata()). AuthorizeAsync(cancellationToken); if (result.Credential != null) { var service = new GFile.DriveService(new BaseClientService.Initializer { HttpClientInitializer = result.Credential, ApplicationName = "WorkCard.vn" }); if (file != null) { if (file.ContentLength > 0) { var fileName = System.IO.Path.GetFileName(file.FileName); var path = System.IO.Path.Combine(Server.MapPath("~/App_Data/Uploads/GoogleDrives"), fileName); file.SaveAs(path); GDataFile.File _file = new GDataFile.File(); _file.Title = file.FileName; _file.Description = "From WorkCard.vn; "; _file.MimeType = GetMimeType(file.FileName); _file.CanComment = true; _file.Shared = true; _file.Shareable = true; using (var stream = new System.IO.FileStream(path, System.IO.FileMode.Open)) { try { GFile.FilesResource.InsertMediaUpload request = service.Files.Insert(_file, stream, _file.MimeType); await request.UploadAsync(); if (request.ResponseBody != null) { Permission permission = new Permission { Type = "anyone", Role = "writer", WithLink = true }; var a = service.Permissions.Insert(permission, request.ResponseBody.Id); await a.ExecuteAsync(); using (ApplicationDbContext context = new ApplicationDbContext()) { document.Id = Guid.NewGuid(); document.Load(request.ResponseBody); document.CreatedBy = User.Identity.Name; document.CreatedDate = DateTime.Now; context.Files.Add(document); await context.SaveChangesAsync(); } } } catch (Exception e) { Console.WriteLine("An error occurred: " + e.Message); } } } if (Request.IsAjaxRequest()) { return(PartialView()); } } return(RedirectToAction("Details", "Articles", new { id = document.ArticleId })); } else { return(new RedirectResult(result.RedirectUri)); } }