错误:上传文件使用Objective-C的
问题描述:
现在我想要上传文件,谷歌至Google云端。 代码已成功构建,但我的文件未上传到Google云端硬盘。错误:上传文件使用Objective-C的
这是我的代码。
-(void)uploadFileToGoogleDrive : (NSString*)fileName fileFullPath:(NSString*)filePath {
GTLDriveFile *driveFile = [GTLDriveFile object];
driveFile.mimeType = @"application/pdf";
driveFile.originalFilename = filePath;
driveFile.name = fileName;
NSString *parentId = @"root";
driveFile.parents = @[parentId];
NSData *fileContent = [[NSData alloc] initWithContentsOfFile:fileName];
GTLUploadParameters *uploadParameters = [GTLUploadParameters uploadParametersWithData:fileContent MIMEType:@"application/pdf"];
GTLQueryDrive *query = [GTLQueryDrive queryForFilesCreateWithObject:driveFile uploadParameters:uploadParameters];
[self.service executeQuery:query
completionHandler:^(GTLServiceTicket *ticket,
GTLDriveFile *updatedFile,
NSError *error) {
if (error == nil) {
NSLog(@"\nfile uploaded into google drive");
} else {
NSLog(@"\nAn error occurred: %@", error);
}
}];
}
错误消息是这样的:
Error Domain=com.google.HTTPStatus Code=501 "(null)"
请帮助我。
答
从这个blog基础,如果客户端不是Web浏览器错误501发生时更容易 - 特别是如果Web服务器是旧的。在任何一种情况下,如果客户端指定了有效的请求类型,那么Web服务器要么响应不正确,要么只是需要升级。
在本answer指出,确保您有权使这两个动作的变化:
NSFileHandle *fileHandle = [NSFileHandle fileHandleForReadingAtPath:self.fromPath];
GTLUploadParameters *uploadParameters = [GTLUploadParameters uploadParametersWithFileHandle:fileHandle MIMEType:mimeType];
GTLQueryDrive *uploadFileQuery = [GTLQueryDrive queryForFilesCreateWithObject:toFile
uploadParameters:uploadParameters];
您还可以查看此相关的主题:
谢谢你 你的回复。我的文件已成功上传。再次感谢你。你能帮助我吗?录制文件(.caf)的MIMEType是什么? –
您可以发布有关您的问题的其他问题。 :) – abielita
谢谢你的回复。我修好了它。如果我有其他问题,我会问你。你还好吗? –