$_FILES is always empty

Will

I am uploading a PDF to my server through my web-service, but $_FILES always seems to be empty regardless of what I do.

The program that will be uploading the PDF is an OSX program (via AFNetworking). I have ruled this out as a possibility of causing the issue as when I attempt to upload the file through 'CocoaRestClient' (similar to POSTMAN on chrome) I get nothing. In CocoaRestClient I am setting my ContentType to 'multipart/form-data'.

The PDF I am attempting to upload is 478kb so I do not think that size is the issue.

My PHP code is below. At the moment I am just trying to see if anything is in the $_FILES array at all.

<?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);

?>

This is the response I get from the JSON

{"filename":null,
 "tmpName":null,
 "fileSize":null,
 "filetype":null,
 "FILES":[]}

This is my objective-C code.

                [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];
                      }];

After using POSTMAN to determine that my php is working correctly, I can conclude that my objective-C code is causing the bug. What is strange however, is that even though my php code returns null's, Charles is telling me that the PDF IS being uploaded!

Will

Found the solution! The problem was that I wasn't setting the request serializers HTTP header field to 'application/pdf'.

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

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related