使用NSURLSessionUploadTask将文件上传到PHP服务器

GTF

我在使用的iOS应用中有一个视频上传系统NSURLSessionUploadTask该视频文件已保存到,NSURL因此我在上传方法中使用以下代码:

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

我有一个在nginx下运行的PHP服务器(使用Laravel)来处理此上传。我已经用Postman进行了测试,并且可以接受上传(期望文件名为“文件”)。

当我运行上面的objc代码时,服务器告诉我没有文件上传($_FILES数组为空)。

我尝试了是否设置“ fileName”标头,并且尝试将“ Content-Type”设置为“ multipart / form-data”,但是这些都不起作用。

我如何才能NSURLSessionUploadTask正确地将这些文件(从NSURL上传到服务器?

这篇文章似乎详细说明了类似的问题:NSURLSessionUploadTask没有将文件传递给php脚本

欧内斯特·坎宁安

使用NSURLSessionUploadTask [uploadTaskWithRequest:fromFile:]时,文件以二进制形式在请求正文中发送。

要将文件保存在PHP中,您只需获取请求正文并将其保存到文件中即可。

显然,最好进行某种文件格式验证。

Objective-C代码:

// Define the Paths
NSURL *URL = [NSURL URLWithString:kDestinationURL];

// Create the Request
NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:URL];
[request setHTTPMethod:@"POST"];

// Configure the NSURL Session
NSURLSessionConfiguration *config = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:@"com.upload"];
config.HTTPMaximumConnectionsPerHost = 1;
NSURLSession *session = [NSURLSession sessionWithConfiguration:config delegate:self delegateQueue:nil];

// Define the Upload task
NSURLSessionUploadTask *uploadTask = [session uploadTaskWithRequest:request fromFile:audioRecorder.url];

// Run it!
[uploadTask resume];

PHP代码:

<?php
    // File Path to save file
    $file = 'uploads/recording.m4v';

    // Get the Request body
    $request_body = @file_get_contents('php://input');

    // Get some information on the file
    $file_info = new finfo(FILEINFO_MIME);

    // Extract the mime type
    $mime_type = $file_info->buffer($request_body);

    // Logic to deal with the type returned
    switch($mime_type) 
    {
        case "video/mp4; charset=binary":

            // Write the request body to file
            file_put_contents($file, $request_body);

            break;

        default:
            // Handle wrong file type here
    }
?>

我在这里编写了一个录制音频并将其上传到服务器的代码示例:https : //github.com/gingofthesouth/Audio-Recording-Playback-and-Upload

希望对您有所帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法使用PHP将文件上传到服务器

来自分类Dev

使用php将多个文件上传到服务器,而不将所有文件上传到服务器

来自分类Dev

使用php将多个文件上传到服务器,而不将所有文件上传到服务器

来自分类Dev

将文件上传到Web服务器Delphi + PHP

来自分类Dev

将文件上传到Web服务器Delphi + php

来自分类Dev

使用Jasny文件输入使用PHP将文件上传到服务器

来自分类Dev

将文件上传到服务器

来自分类Dev

将文件上传到服务器

来自分类Dev

使用curl将文件上传到django服务器

来自分类Dev

使用AJAX将Zip文件上传到服务器

来自分类Dev

使用python将文件上传到Django服务器

来自分类Dev

无法使用curl将文件上传到服务器

来自分类Dev

使用js将文件上传到服务器

来自分类Dev

使用Indy将文件上传到FTP服务器

来自分类Dev

使用AJAX将文件上传到服务器

来自分类Dev

使用python将文件上传到瓶子服务器

来自分类Dev

使用 cURL 将图像上传到 PHP 服务器?

来自分类Dev

使用php使用FTP将文件上传到服务器

来自分类Dev

没有使用PHP脚本将文件上传到服务器

来自分类Dev

使用Xcode 6和PHP文件将图像上传到服务器

来自分类Dev

如何使用PHP 5将任何类型的文件上传到服务器?

来自分类Dev

如何使用php将文件上传到服务器-Livecode

来自分类Dev

使用retroft android将文件上传到php服务器时出错

来自分类Dev

如何使用php将多个文件上传到000webhost服务器?

来自分类Dev

尝试使用 PHP 将文件上传到服务器,但它始终转换为 .jpg 格式

来自分类Dev

如何使用文件上传控制器将pdf文件上传到ftp服务器?

来自分类Dev

将文件上传到服务器上的目录-PHP 5.6-现在未复制文件

来自分类Dev

将文件上传到服务器php API。需要该文件的URL作为响应

来自分类Dev

如何将文件上传到数据库,而不仅仅是使用php的服务器

Related 相关文章

  1. 1

    无法使用PHP将文件上传到服务器

  2. 2

    使用php将多个文件上传到服务器,而不将所有文件上传到服务器

  3. 3

    使用php将多个文件上传到服务器,而不将所有文件上传到服务器

  4. 4

    将文件上传到Web服务器Delphi + PHP

  5. 5

    将文件上传到Web服务器Delphi + php

  6. 6

    使用Jasny文件输入使用PHP将文件上传到服务器

  7. 7

    将文件上传到服务器

  8. 8

    将文件上传到服务器

  9. 9

    使用curl将文件上传到django服务器

  10. 10

    使用AJAX将Zip文件上传到服务器

  11. 11

    使用python将文件上传到Django服务器

  12. 12

    无法使用curl将文件上传到服务器

  13. 13

    使用js将文件上传到服务器

  14. 14

    使用Indy将文件上传到FTP服务器

  15. 15

    使用AJAX将文件上传到服务器

  16. 16

    使用python将文件上传到瓶子服务器

  17. 17

    使用 cURL 将图像上传到 PHP 服务器?

  18. 18

    使用php使用FTP将文件上传到服务器

  19. 19

    没有使用PHP脚本将文件上传到服务器

  20. 20

    使用Xcode 6和PHP文件将图像上传到服务器

  21. 21

    如何使用PHP 5将任何类型的文件上传到服务器?

  22. 22

    如何使用php将文件上传到服务器-Livecode

  23. 23

    使用retroft android将文件上传到php服务器时出错

  24. 24

    如何使用php将多个文件上传到000webhost服务器?

  25. 25

    尝试使用 PHP 将文件上传到服务器,但它始终转换为 .jpg 格式

  26. 26

    如何使用文件上传控制器将pdf文件上传到ftp服务器?

  27. 27

    将文件上传到服务器上的目录-PHP 5.6-现在未复制文件

  28. 28

    将文件上传到服务器php API。需要该文件的URL作为响应

  29. 29

    如何将文件上传到数据库,而不仅仅是使用php的服务器

热门标签

归档