如何在swift中上传CSV文件在谷歌驱动器3

问题描述:

我使用谷歌驱动器SDK上传CSV文件。我使用谷歌给出的代码,但错误来临如何在swift中上传CSV文件在谷歌驱动器3

func create(){ 

    let fileData = FileManager.default.contents(atPath: "FL_insurance_sample.csv") 

    let folderId: String = self.fileId! 
    let metadata = GTLRDrive_File.init() 
    metadata.name = "FL_insurance_sample" 
    metadata.mimeType = "application/vnd.google-apps.spreadsheet" 
    metadata.parents = [folderId] 


    let uploadParameters = GTLRUploadParameters(data: fileData! , mimeType: "text/csv") 
    uploadParameters.shouldUploadWithSingleRequest = true 
    let query = GTLRDriveQuery_FilesCreate.query(withObject: metadata, uploadParameters: uploadParameters) 
    query.fields = "id" 
    self.service.executeQuery(query, completionHandler: {(ticket:GTLRServiceTicket, object:Any?, error:Error?) in 
     if error == nil { 
      // print("File ID \(files.identifier)") 
     } 
     else { 
      print("An error occurred: \(error)") 
     } 
    })   

} 

它在fileData的uploadParameters上显示nil错误。谁能帮我吗。

变量fileData为零,因为您传递了错误的文件路径。为了得到正确的文件路径使用:

guard let filePath = Bundle.main.path(forResource: "FL_insurance_sample", ofType: "csv") else { 
    print("No such file in bundle") 
    // handle situation 
    return 
} 
guard let fileData = FileManager.default.contents(atPath: filePath) else { 
    print("Can't read file") 
    // handle situation 
    return 
} 
// upload fileData 
+0

感谢您的答复你能告诉我我如何得到系统zip文件在传动 –

+0

@Udai库马尔你可以做同样的方式上传,如果包含在您的拉链在应用程序捆绑。在这里,您只需从文件中获取所有字节并将其上传到使用“application/zip”MIME类型的驱动器。 –

+0

感谢您的回复,我在系统中保存了一个zip文件,它的URL是“file:/// Users/marg/Library/Developer/CoreSimulator/Devices/B1EEB75C-9DE9-491A-A160-4C35BF3D8012/data/Containers/Data /应用程序/ 6C490021-9612-4631-8016-459BFCA7453F/Documents/archive.zip“现在我想上传此文件 –