我在这里有这段代码,可以将数据发送到我的服务器,这段代码运行良好:
NSString *imagepath = [[self applicationDocumentsDirectory].path stringByAppendingPathComponent:@"ProgrammingWithObjectiveC.pdf"];
NSURL *outputFileURL = [NSURL fileURLWithPath:imagepath];
NSURL *icyURL = [NSURL URLWithString:uploadURLString];
NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:icyURL];
[request setHTTPMethod:@"POST"];
NSURLSessionConfiguration *sessionConfig = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:@"com.app.upload"];
NSURLSession *upLoadSession = [NSURLSession sessionWithConfiguration:sessionConfig delegate:self delegateQueue:nil];
self.uploadTask = [upLoadSession uploadTaskWithRequest:request fromFile:outputFileURL];
[self.uploadTask resume];
正如我之前所说,这段代码效果很好,php文件是:
<?php
$fp = fopen("myImage.pdf", "a");
$escreve = fwrite($fp, file_get_contents("php://input"));
fclose($fp);
?>
问题是我需要在 POST 方法中发送一些参数,如文件名、id 等,我尝试了很多方法来做到这一点,但我什么也做不了。
其他解决方案
那么我在想如何解决这个问题,我可以发送数据但不发送参数,我可以发送参数但不发送数据,但我不能在同一个请求中发送这两个。
在我的情况下,我需要将一个图像和这个图像的名称发送到我的服务器,所以第一个想法是将图像发送到我的服务器并显示该代码!
在 php 中,我得到这个文件,并为他生成一个随机和长名称,并将这个名称返回给 Objective-c。
当 Objective-c 收到这个响应时,他发送另一个请求,其中包含文件名和我们从服务器接收到的文件名。现在 PHP 接收到这个请求并用正确的名称更改文件的名称。