0

以下代码是将图像文件发送到 Web 服务器,但我需要将其更改为发送 pdf 文件。哪里改不知道。任何帮助..

NSURL *url = [NSURL URLWithString:@"http://api-base-url.com"];
AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];
NSData *imageData = UIImageJPEGRepresentation([UIImage imageNamed:@"avatar.jpg"], 0.5);
NSMutableURLRequest *request = [httpClient multipartFormRequestWithMethod:@"POST" path:@"/upload" parameters:nil constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) {
    [formData appendPartWithFileData:imageData name:@"avatar" fileName:@"avatar.jpg" mimeType:@"image/jpeg"];
}];

AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
[operation setUploadProgressBlock:^(NSUInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite) {
    NSLog(@"Sent %lld of %lld bytes", totalBytesWritten, totalBytesExpectedToWrite);
}];
[httpClient enqueueHTTPRequestOperation:operation];
4

3 回答 3

1

请检查此链接。我认为这是你需要的。但首先您必须将 PDF 文件存储在文档目录中。

通过iPhone中的网络服务上传pdf文件(从文档目录)?

此代码使用AFNetworking

不确定它是否没有错误,因为它取自更长的源,所以我修改了一些代码,但这是一个好的开始

希望这可以帮助。

于 2013-08-02T06:02:44.463 回答
0

您可以将您的 pdf 文件转换为 NSData 并将其发送到网络服务

你只需要这样做:

NSData *pdfData = [NSData dataWithContentsOfFile:pdfName];

您可以拥有一个 Web 服务,该服务将获取此数据并在服务器端将其转换回 PDF。

于 2013-08-02T06:13:37.287 回答
0

NSData 通常用于存储数据,而不仅仅是图像。如果您创建一个包含 PDF 数据的 NSData 对象,那么您将能够使用相同的代码来上传它。只要您可以访问它,您就不dataWithContentsOfFile必将 PDF 文件放在特定的位置 - 但如果您有文件就可以了。许多应用程序使用 PDF 图形上下文从自己的显示器创建 PDF 输出,例如UIGraphicsBeginPDFContextToData.

下面是一些代码,展示了如何使用 AFNetworking 发送 PDF(有关正确的 mime 类型等,请参阅此内容) - 该片段用于说明 AFNetworking 中的错误,但不要担心,它已修复。

于 2013-08-02T06:07:55.690 回答