使用 NSURLConnection 获取文件大小非常慢

Getting file size with NSURLConnection is very slow

我尝试获取存储在服务器上的文件的文件大小。

我设法做到了,但它需要我下载它的时间。

我假设它会下载文件来评估大小。

有没有更快的方法获取文件大小?

func getFileSizeFromURL(sURL:String) -> String{

    let urlPath: String = sURL;
    var url: NSURL = NSURL(string: urlPath)!
    var request1: NSURLRequest = NSURLRequest(URL: url)


    var response : NSURLResponse?
    NSURLConnection.sendSynchronousRequest(request1, returningResponse: &response , error: nil)


    var size:String="";

    if let httpResponse = response as? NSHTTPURLResponse {
        println(httpResponse.expectedContentLength)


        size="\(httpResponse.expectedContentLength)"

    }

    return size;

}

I assume it will download the file to evaluate the size.

是的,那是因为您确实在下载文件。您应该改为使用 HEAD request 来获取有关文件的数据。将方法从 GET 或 POST 更改为 HEAD 将只获得 HTTP headers。在创建 request1:

后插入这样一行
request1.HTTPMethod = "HEAD"