Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php $\u文件始终为空_Php_Objective C_Pdf_Afnetworking 2_Uploading - Fatal编程技术网

Php $\u文件始终为空

Php $\u文件始终为空,php,objective-c,pdf,afnetworking-2,uploading,Php,Objective C,Pdf,Afnetworking 2,Uploading,我正在通过我的web服务将PDF上传到我的服务器,但是无论我做什么,$\u文件似乎总是空的 将上载PDF的程序是一个OSX程序(通过AFX网络)。我已经排除了这一可能性,因为当我试图通过“CoCooarestClient”(类似于chrome上的POSTMAN)上传文件时,我什么也得不到。在CocoaRestClient中,我将ContentType设置为“multipart/formdata” 我试图上传的PDF是478kb,所以我认为大小不是问题 下面是我的PHP代码。目前,我只是想看看$\

我正在通过我的web服务将PDF上传到我的服务器,但是无论我做什么,$\u文件似乎总是空的

将上载PDF的程序是一个OSX程序(通过AFX网络)。我已经排除了这一可能性,因为当我试图通过“CoCooarestClient”(类似于chrome上的POSTMAN)上传文件时,我什么也得不到。在CocoaRestClient中,我将ContentType设置为“multipart/formdata”

我试图上传的PDF是478kb,所以我认为大小不是问题

下面是我的PHP代码。目前,我只是想看看$\u文件数组中是否有任何内容

<?php

header('Content-type: multipart/form-data');

$fileName = $_FILES['PDF']['name'];
$tmpName  = $_FILES['PDF']['tmp_name'];
$fileSize = $_FILES['PDF']['size'];
$fileType = $_FILES['PDF']['type'];

$response = array("filename" => $fileName,
                  "tmpName" => $tmpName,
                  "fileSize" => $fileSize,
                  "filetype" => $fileType,
                  "FILES" => $_FILES);

echo json_encode($response);

?>
这是我的objective-C代码

                [manager POST:pdfURL
                   parameters:nil
    constructingBodyWithBlock:^(id <AFMultipartFormData> formData) {
        [formData appendPartWithFileData:pdf name:@"PDF" fileName:filename mimeType:@"multipart/form-data"];
    }

                      success:^(NSURLSessionDataTask *operation, id responseObject) {
                        [self checkForErrorInResponse:responseObject];

                        [delegate pdfUploadedSuccessfullyWithResponse:responseObject];
                    }

                      failure:^(NSURLSessionDataTask *operation, NSError *error) {
                          [delegate pdfFailedToUploadWithError:error];
                      }];
[经理职务:pdfURL
参数:零
构造体WithBlock:^(id formData){
[formData appendPartWithFileData:pdf名称:@“pdf”文件名:文件名mimeType:@“多部分/表单数据”];
}
成功:^(NSURLSessionDataTask*操作,id responseObject){
[错误响应的自检:响应对象];
[代表pdfUploadedSuccessfullyWithResponse:responseObject];
}
失败:^(NSURLSessionDataTask*操作,NSError*错误){
[委托pdfFailedToUploadWithError:错误];
}];

在使用POSTMAN确定我的php是否正常工作后,我可以断定是我的objective-C代码导致了该错误。然而,奇怪的是,尽管我的php代码返回空值,Charles却告诉我PDF正在上传

如果您忘记在表单元素中添加
enctype=“multipart/form data”
属性,这可能会对您有所帮助。试试下面的代码

<form action="demo.php" method="post" enctype="multipart/form-data"> ... </form>
。。。
希望这有帮助。

找到了解决方案! 问题是我没有将请求序列化器HTTP头字段设置为“application/pdf”

[manager.requestSerializer setValue:@"application/pdf" forHTTPHeaderField:@"Content-Type"];

没有HTML代码,它是通过OSX程序完成的。然而,我正在通过CocoaRestClient进行调试。您可以发布适用的objective-c代码和
$\u文件的
var\u dump
。发布任何代码,因为我们必须查看它实际发送的内容。程序可能不会将其作为
$\u文件[“PDF”]
上传,而是作为
$\u文件[“userfile”]
或其他所有文件一起上传,请尝试打印($\u文件)
并查看其是否为空。如果是空数组,则不会收到任何内容。是否确实没有抛出错误或异常?你可以试着用一个像:Hey Ejaz这样的应用程序来查看到底发送了什么。我没有使用HTML表单发送数据,因此很遗憾,这没有帮助。不过还是要谢谢你!
[manager.requestSerializer setValue:@"application/pdf" forHTTPHeaderField:@"Content-Type"];