标签: nsurlsessionuploadtask

NSURLSession后台上传 - 需要启用后台模式吗?

我正在实例化一个NSURLSession像这样做几个后台上传:

  sessionConfiguration = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:myIdentifier];
Run Code Online (Sandbox Code Playgroud)

在大多数情况下,一切似乎都运行正常,但我想知道是否需要在p.list中添加背景Fetch键,如果我所做的只是后台上传而不是下载?我无法找到文件说我应该或不应该.特别是在XCode 5 +上,我想知道如果在Capabilities> Background模式下,我应该启用或不启用后台获取,如果我正在做的是后台上传,请注意我在上传完成后会读取响应,这可能被视为"下载".

iphone xcode ios nsurlsession nsurlsessionuploadtask

4
推荐指数
1
解决办法
828
查看次数

使用AFNetwork上传NSData来终止我的APP

我正在尝试使用AFNetwork上传一个NSData图像,但出现了问题,我无法找到我的错误

这是我的代码:

NSData *imageData = UIImageJPEGRepresentation([UIImage imageNamed:@"test.jpg"], 0.1);

NSMutableDictionary *postParams = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                   @"this is only a test post for \"app\".", @"app",
                                   @"this POST for \"test\". ", @"test", nil];

NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST" URLString:@"http://url/upload.php" parameters:postParm constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
    [formData appendPartWithFileData:imageData name:@"file" fileName:@"filename.jpg" mimeType:@"image/jpeg" ];
} error:nil];

AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
NSProgress *progress = nil;

NSURLSessionUploadTask *uploadTask = [manager uploadTaskWithStreamedRequest:request progress:&progress completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {
    if (error) {
        NSLog(@"Error: %@", error);
    } else …
Run Code Online (Sandbox Code Playgroud)

nsdata afnetworking afnetworking-2 nsurlsession nsurlsessionuploadtask

3
推荐指数
1
解决办法
1367
查看次数

NSURLSession任务执行顺序

我将多个任务按顺序添加到NSURLSession(后台模式)中。我保持HTTPMaximumConnectionsPerHost =1。但是,我看到上传是按照随机顺序进行的,即,在第一个项目可能是第5个项目被拾取之后,第3个项目等等,等等-上载没有按顺序进行我提供给NSURLSession。有没有一种方法可以完全按照上传的顺序订购上传内容?

iphone ios nsurlsession nsurlsessionuploadtask

2
推荐指数
1
解决办法
1445
查看次数

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

我在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];
Run Code Online (Sandbox Code Playgroud)

我有一个在nginx下运行的PHP服务器(使用Laravel)来处理这个上传.我已经使用Postman对其进行了测试,并且它接受了很好的上传(期待名为"file"的文件).

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

我已尝试使用和不设置"fileName"标头,我尝试将"Content-Type"设置为"multipart/form-data",但这些都不起作用.

如何NSURLSessionUploadTask正确上传这些文件(从a NSURL)到服务器?

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

php file-upload objective-c nsurlsession nsurlsessionuploadtask

1
推荐指数
1
解决办法
4841
查看次数

iOS-如何使用uploadTask上传视频?

我需要将iPhone / iPad上的mp4视频文件上传到服务器(也在后台),所以我读到可以通过URLSession.uploadTask(with:URLRequest,fromFile:URL)方法来实现,但我不知道该怎么做我之前准备了请求,我需要创建一个multipart / form-data请求,因为我想附加其他字符串参数。

func requestBodyFor(video: URL) -> Data? {
    let url = URL(string: "url_of_upload_handler.php")!

    let parameters = ["type":"video", "user":"112"]

    do {

        let kBoundary = "Boundary-\(UUID().uuidString)"
        let kStartTag = "--%@\r\n"
        let kEndTag = "\r\n"
        let kContent = "Content-Disposition: form-data; name=\"%@\"\r\n\r\n"

        var body = Data()

        let videoData = try Data(contentsOf: video)

        // parameters
        for (key,value) in parameters {
            body.append(String(format: kStartTag, kBoundary).data(using: String.Encoding.utf8)!)
            body.append(String(format: kContent, key).data(using: String.Encoding.utf8)!)
            body.append(value.data(using: String.Encoding.utf8)!)
            body.append(String(format: kEndTag).data(using: String.Encoding.utf8)!)
        }

        //Video data
        body.append(String(format: kStartTag, boundary).data(using: String.Encoding.utf8)!) …
Run Code Online (Sandbox Code Playgroud)

ios nsurlsessionuploadtask swift3

1
推荐指数
1
解决办法
4949
查看次数