以下是我的情况:我在我的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)
没有成功。 。 。 。我需要通过这种方法调用图像......任何想法? 非常感谢!
答案 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()