【问题标题】:I can't upload video to server我无法将视频上传到服务器
【发布时间】:2018-02-14 11:04:11
【问题描述】:

我尝试了所有方法,但每次尝试上传此视频时都会出现此错误。错误

Domain=NSCocoaErrorDomain Code=257 "文件“IMG_1773.MOV”不能 因您无权查看而被打开。”

[![fileprivate func getVideoFromasset() {
                let imgManager = PHImageManager.default()
                let fetchVideos = PHVideoRequestOptions()
                fetchVideos.isNetworkAccessAllowed = true
                fetchVideos.deliveryMode = .automatic

                guard let asset = self.videoAsset else {
                    return
                }

                imgManager.requestPlayerItem(forVideo: asset, options: fetchVideos, resultHandler: { (data, info) in
                    guard let video = data?.asset as? AVURLAsset else { return }
                    print(video.url)
                    self.urlAsset = video.url
                    self.getVideoFromUrl(url: video.url)
                })
            }
     @objc fileprivate func UploadVideo() {

            guard let url = self.urlAsset else {return}
            print(url.absoluteString)
            if self.videoUrl == nil {

                do {
                let filedat = try Data(contentsOf: url)
                let pffile = PFFile(name: "sdsd", data: filedat)
                    pffile?.saveInBackground({ (data, error) in
                        print(error)
                    }, progressBlock: { (intt) in
                        print(intt)
                    })
                } catch {
                    print(error)
                }
            } else {
                print(self.videoUrl)
                print("upload from url file")
            }
        }][1]][1]

错误域=NSCocoaErrorDomain 代码=257 "文件“IMG_1773.MOV” 无法打开,因为您无权查看。” UserInfo={NSFilePath=/var/mobile/Media/DCIM/101APPLE/IMG_1773.MOV, NSUnderlyingError=0x174254280 {错误域=NSPOSIXErrorDomain 代码=1 "不允许操作"}}

file:///var/mobile/Media/DCIM/101APPLE/IMG_1773.MOV

我需要帮助!!!!

【问题讨论】:

  • 尝试清理 xcode!
  • 我做到了。但它没有工作\

标签: ios iphone swift parse-platform swift3


【解决方案1】:

我在上传视频时遇到了同样的问题。对于云视频正在上传,但是对于手机内存中的视频面临错误。所有你需要做的而不是 URL 路径使用 NSData 来处理不是来自云的视频。希望这会有所帮助。谢谢你。

   [[PHImageManager defaultManager] requestAVAssetForVideo:selectedImage
                                                            options:options
                                                      resultHandler:
             ^(AVAsset * _Nullable avasset,
               AVAudioMix * _Nullable audioMix,
               NSDictionary * _Nullable info)
            {
                AVURLAsset *avurlasset = (AVURLAsset*) avasset;
                NSData *data = [NSData dataWithContentsOfURL:avurlasset.URL];
                AVURLAsset *asset1 = [[AVURLAsset alloc] initWithURL:avurlasset.URL options:nil];
                AVAssetImageGenerator *generate1 = [[AVAssetImageGenerator alloc] initWithAsset:asset1];
                generate1.appliesPreferredTrackTransform = YES;
                NSError *err = NULL;
                CMTime time = CMTimeMake(1, 2);
                CGImageRef oneRef = [generate1 copyCGImageAtTime:time actualTime:NULL error:&err];
                UIImage *thumbNailImage = [[UIImage alloc] initWithCGImage:oneRef];

                NSString *typeOfImage = @"storingVideoPath";
                NSMutableDictionary  *dictForImagePath = [[NSMutableDictionary alloc] init];



                [dictForImagePath setValue:flStrForObj(selectedImage.localIdentifier) forKey:@"uniqueIdenifierForAsset"];
                [dictForImagePath setObject:indexPath forKey:@"indexPath"];
                [dictForImagePath setValue:typeOfImage forKey:@"imageType"];
                [dictForImagePath setValue:data forKey:@"imageValue"];
                [dictForImagePath setObject:thumbNailImage forKey:@"thumnailImage"];
                if(![arrayOfLibImages containsObject:dictForImagePath]) {
                    [arrayOfLibImages addObject:dictForImagePath];
                    dispatch_async(dispatch_get_main_queue(), ^{
                    [self.collectionViewForPickedPhotos reloadData];
                    });
                }
            }];
            }

【讨论】:

    【解决方案2】:

    在上传视频/图片之前有几点需要检查。

    1 您必须具有 info.plist 中定义的权限。

    1. 使用 requestPlayerItem 函数中获取的 url 创建数据并将此数据作为参数传递给 uploadVideo 函数。我希望这对你有用。

    【讨论】:

      猜你喜欢
      • 2017-01-15
      • 1970-01-01
      • 2011-10-09
      • 2016-06-09
      • 2011-06-28
      • 2015-10-05
      • 1970-01-01
      • 2012-02-07
      相关资源
      最近更新 更多