Datei mit NSURLSessionUploadTask auf PHP-Server hochladen

Ich habe ein Video-Upload-System in einer iOS-App mitNSURLSessionUploadTask. Die Videodatei wird unter einem @ gespeicherNSURL Also verwende ich den folgenden Code in meiner Upload-Methode:

request.HTTPMethod = @"POST";
[request addValue:@"file" forHTTPHeaderField:@"fileName"];

// Create upload task
NSURLSessionUploadTask *task = [session uploadTaskWithRequest:request fromFile:filePath completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
    if(!error) {
        // handle success
    } else {
        // handle error
    }
}];

// Run the task
[task resume];

Ich habe einen PHP-Server (mit Laravel), der unter nginx läuft, um diesen Upload durchzuführen. Ich habe es mit Postman getestet, und es akzeptiert Uploads gut (eine Datei unter dem Namen "Datei" erwartet).

Wenn ich den obigen objc-Code ausführe, teilt der Server mir mit, dass keine Datei hochgeladen wurde (das$_FILES array ist leer).

Ich habe versucht, mit und ohne den "fileName" -Header zu setzen, und ich habe versucht, "Content-Type" auf "multipart / form-data" zu setzen, aber keines davon funktioniert.

Wie bekomme ichNSURLSessionUploadTask, um diese Dateien korrekt hochzuladen (von einemNSURL) zum Server?

Dieser Beitrag scheint ein ähnliches Problem zu beschreiben:NSURLSessionUploadTask übergibt die Datei nicht an das PHP-Skript

Antworten auf die Frage(1)

Ihre Antwort auf die Frage