上传JPEG时出现问题,Google云端硬盘会将其另存为PNG

时间:2016-06-01 21:18:46

标签: ios objective-c google-drive-api

我在使用可用于Objective-C的SDK上将照片上传到Google云端硬盘时遇到问题。

情况摘要如下,我创建了一个具有已定义名称的文件夹,在创建文件夹后,我在我的应用程序中上传了有限数量的照片商店。我等到收到确认照片上传成功后才尝试下一个列表。

我遇到的问题如下,我知道照片文件大约为9MB,并且成功点击了Google云端硬盘。问题是我使用MIME类型的图片/ jpeg上传它,实际显示在Google云端硬盘中的文件是PNG图像文件,它的大小为22 MB !!!!!!!我无法理解为什么它将它解释为PNG,以及为什么规模增长如此之多。

这是我的相关代码:

- (void) uploadPhotoToFolder:(NSString *)identifier withIndex:(int)index{
        UIImage *content = [[photoArray objectAtIndex:index] objectAtIndex:0];
        NSString *mimeType = @"image/jpeg";
        GTLDriveFile *metadata = [GTLDriveFile object];
        NSString *name =@"FileName";
        metadata.name = name;

        metadata.parents = @[identifier];

        NSData *data = UIImagePNGRepresentation(content);
        GTLUploadParameters *uploadParameters = [GTLUploadParameters uploadParametersWithData:data
                                                                                     MIMEType:mimeType];
        GTLQueryDrive *query = [GTLQueryDrive queryForFilesCreateWithObject:metadata
                                                           uploadParameters:uploadParameters];
        [self.service executeQuery:query completionHandler:^(GTLServiceTicket *ticket,
                                                             GTLDriveFile *updatedFile,
                                                             NSError *error) {
            if (error == nil) {
                //Notify that upload was successful 
            }
            else {
                //Notify that upload failed.
            }

        }];
}

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您正在使用NSData *data = UIImagePNGRepresentation(content);,无论您发送的MIME类型如何,都会使您的图片成为PNG。