将数据和参数发送到服务器

时间:2015-04-11 12:13:42

标签: php ios objective-c nsurlsession nsurlsessionuploadtask

我这里有这个代码将数据发送到我的服务器,这段代码效果非常好:

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收到此请求并使用正确的名称更改文件的名称。

0 个答案:

没有答案