如何在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
感谢您的答复你能告诉我我如何得到系统zip文件在传动 –
@Udai库马尔你可以做同样的方式上传,如果包含在您的拉链在应用程序捆绑。在这里,您只需从文件中获取所有字节并将其上传到使用“application/zip”MIME类型的驱动器。 –
感谢您的回复,我在系统中保存了一个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“现在我想上传此文件 –