文件上传及进度显示

原创 2015年11月20日 17:00:42

之前遇到需要显示文件上传时的进度问题,就整理了下资料,没什么复杂的东西,看代码吧。

NSString *urlString = [NSString stringWithFormat:@"%@api/?method=gdb.send_talk",BASEURL];//你的URL

    NSDictionary *dict = @{@"type":[NSString stringWithFormat:@"%d",pvtype],@"content":_textView.text};//需要传的dict,没有写nil

    AFHTTPRequestSerializer *serializer = [AFHTTPRequestSerializer serializer];
    NSMutableURLRequest *request = [serializer multipartFormRequestWithMethod:@"POST" URLString:urlString
                                                                   parameters:dict
                                                    constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {

                                                        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
                                                        // 设置时间格式
                                                        formatter.dateFormat = @"yyyyMMddHHmmss";
                                                        NSString *str = [formatter stringFromDate:[NSDate date]];
                                                       //按时间给传的文件命名
                                                            NSString *imageName = [NSString stringWithFormat:@"%@.jpg", str];
                                                            NSString *videoName = [NSString stringWithFormat:@"%@.mp4", str];

                                                            [formData appendPartWithFileData:videoData name:@"video" fileName:videoName mimeType:@"mp4"];//传视频 videoData  视频所在的data
                                                            [formData appendPartWithFileData:image_data name:@"image" fileName:imageName mimeType:@"jpg"];//传图片 imageData 图片所在的data



                                                    }];
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    AFHTTPRequestOperation *operation =
    [manager HTTPRequestOperationWithRequest:request
                                     success:^(AFHTTPRequestOperation *operation, id responseObject) {
                                         NSLog(@"Success %@", responseObject);
                                         [self.navigationController popViewControllerAnimated:YES];

                                     } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
                                         NSLog(@"Failure %@", error.description);
                                     }];
    [operation setUploadProgressBlock:^(NSUInteger __unused bytesWritten,
                                        long long totalBytesWritten,
                                        long long totalBytesExpectedToWrite) {

        NSLog(@"传了%.2fMB/共 %.2fMB",totalBytesWritten/1024.0/1024.0,totalBytesExpectedToWrite/1024.0/1024.0);

    }];
    [operation start];
版权声明:欢迎转载和分享,转载请注明出处。

相关文章推荐

html5用ajax方式实现文件上传并显示进度

Html5 Ajax 上传文件 function UploadFile() { var fileObj = document.getElementB...

基于AJAX的文件上传显示进度条实现

基于Ajax的文件上传要实现的功能要求,要在用户提交了上传按钮请求后,客户端其页面要显示文件上传进度条。       其整个功能时序图如图所示。  简单的说,要实现在客...

jquery文件上传进度显示

  • 2012-11-15 13:41
  • 342KB
  • 下载

阿里云 oss 小文件上传进度显示

对阿里云OSS上传小文件时的进度,想过两个方法:一是,通过多线程监测Inputstream剩余的字节数来计算,但是因为Inputstream在两个线程中共用,如果上传线程将Inputstream关闭,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)