错误:上传文件使用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]; 

您还可以查看此相关的主题:

+0

谢谢你 你的回复。我的文件已成功上传。再次感谢你。你能帮助我吗?录制文件(.caf)的MIMEType是什么? –

+0

您可以发布有关您的问题的其他问题。 :) – abielita

+1

谢谢你的回复。我修好了它。如果我有其他问题,我会问你。你还好吗? –