我这里有这个代码将数据发送到我的服务器,这段代码效果非常好:
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方法中发送一些参数,比如filename,id等等,我尝试了很多东西来做这件事,但我什么都没做。
其他解决方案
我正在考虑如何解决这个问题,我可以发送数据但没有发送参数,我可以发送参数但没有发送数据,但我不能在同一请求中发送这两个。
在我的情况下,我需要将一个图像和这个图像的名称发送到我的服务器,所以第一个想法是将图像发送到我的服务器,并显示该代码!
在php中我得到这个文件,并为他生成一个ramdom和一个长名称,并将此名称返回给Objective-c。
当Objective-c收到此响应时,他发送另一个请求,其中包含文件名和我们从服务器收到的文件名。现在PHP收到此请求并使用正确的名称更改文件的名称。