URL前缀的不同操作

时间:2017-05-05 11:09:50

标签: ios swift url

以下是我的情况:我在我的ios应用程序上本地调用文件(在Swift中运行)。

如果文件是jpg,则会发生一个动作,如果文件是mp4,则会发生另一个动作。

对于这个我的代码:

return View::make('rss', $data);

这很有效。

我现在需要做的不是在本地调用eifle,而是将其称为URL。

我通过以下网址从网址上读取了我的文件:

    let urlString = "\(posts[selectedIndexPath].link)"

    let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]

    let fileName = urlString as NSString;
    let filePath="\(documentsPath)/\(fileName.lastPathComponent)";
    let fileURL = NSURL.init(fileURLWithPath: filePath)
    let request = NSURLRequest.init(url: fileURL as URL)


    /* END DOWNLOAD + READ LOCALY */

    if (fileURL.pathExtension?.hasPrefix("jpg"))! {
        Swift.print("THIS IS A JPG")


    }
    else if (fileURL.pathExtension == "mp4") {

        Swift.print("THIS IS A MP4")

    }

哪项工作。

但是,由此,行动无效,我尝试以下方法:

videoVRView.load(from: URL(string: "\(posts[selectedIndexPath].link)")

没有任何成功!!

有人知道这是如何实现的吗?

非常感谢=)

- 编辑 -

我想要做的是继续恢复:

在演出时我通过以下方式在本地调用图像:

 if ((from: URL(string: "\(posts[selectedIndexPath].link)").hasPrefix("jpg"))! {
    Swift.print("THIS IS A JPG")


}
else if ((from: URL(string: "\(posts[selectedIndexPath].link)") == "mp4") {

    Swift.print("THIS IS A MP4")

}

我尝试使用:

       imageVRView.load(UIImage(named: "\(documentsPath)/\(fileName.lastPathComponent)" ),
   of: GVRPanoramaImageType.stereoOverUnder)

没有成功。 。 。 。我需要通过这种方法调用图像......任何想法? 非常感谢!

1 个答案:

答案 0 :(得分:0)

您可以使用httpMethod HEAD为url标头发出URL请求,以检查您的url mime类型,而无需先下载数据:

let link = "https://www.dropbox.com/s/sk46eyglvijlrec/horse.jpg?dl=1"
let url = URL(string: link)!

var request = URLRequest(url: url)
request.httpMethod = "HEAD"
URLSession.shared.dataTask(with: request) { _ , response , _ in
    guard let response = response, (response as? HTTPURLResponse)?.statusCode == 200 else { return }
    DispatchQueue.main.async() {
        print("mimeType", response.mimeType ?? "nil")            // image/jpeg
        print("suggestedFilename:", response.suggestedFilename ?? "no suggestedFilename")   // horse.jpg
        print("expectedContentLength:", response.expectedContentLength ?? "nil")   // 352614
        print("textEncodingName:", response.textEncodingName ?? "nil")
        print("url:", response.url ?? "nil")                 // "https://dl.dropboxusercontent.com/content_link/RNrhGtvroTLU1Gww7eQo1N1ePRiix68zsqZJ1xWPjKm3pmOUNQwNVntbPuFG4jZ8/file?dl=1"
    }
}.resume()