JavaScript được biết đến nhiều nhất để phát triển trang web nhưng nó cũng được sử dụng trong nhiều môi trường không có trình duyệt. Bạn có thể học JavaScript từ đầu bằng cách làm theo Hướng dẫn JavaScript và Ví dụ về JavaScript này Show
Đôi khi cả hai trả về các kết quả khác nhau vì get_headers sẽ thực hiện yêu cầu GET theo mặc định trong khi bạn đã định cấu hình cURL để thực hiện yêu cầu HEAD. Bắt đầu bằng cách tạo yêu cầu giống với những gì cURL gửi bằng cách đặt ngữ cảnh luồng HTTP khác bằng cách sử dụng HEAD cho phương thức yêu cầu Mục lục
Làm cách nào để có được kích thước tệp từ xa hoặc kích thước URL ở định dạng B, KB, MB, GB bằng PHP?Có nhiều cách để lấy kích thước tệp hoặc URL nhưng ở đây chúng tôi đang chia sẻ 3 cách khác nhau hàng đầu để lấy nó. Bạn có thể thử tất cả những thứ bên dưới nhưng những thứ này có các thuộc tính hoặc tính năng khác nhau mà bạn nên chọn gì theo yêu cầu của mình. Ngoài ra, thực hiện các thay đổi theo nhu cầu của bạn Đề xuất cho bạn Mã DIV thành công, cảnh báo, thông báo và lỗi tuyệt vời 1. ) Gửi một yêu cầu tiêu đề function getRemoteFilesize($file_url, $formatSize = true) { $head = array_change_key_case(get_headers($file_url, 1)); // content-length of download (in bytes), read from Content-Length: field $clen = isset($head['content-length']) ? $head['content-length'] : 0; // cannot retrieve file size, return “-1” if (!$clen) { return 0; } if (!$formatSize) { return $clen; // return size in bytes } $size = $clen; switch ($clen) { case $clen < 1024: $size = $clen .' B'; break; case $clen < 1048576: $size = round($clen / 1024, 2) .' KB'; break; case $clen < 1073741824: $size = round($clen / 1048576, 2) . ' MB'; break; case $clen < 1099511627776: $size = round($clen / 1073741824, 2) . ' GB'; break; } return $size; }1 và trích xuất giá trị function getRemoteFilesize($file_url, $formatSize = true) { $head = array_change_key_case(get_headers($file_url, 1)); // content-length of download (in bytes), read from Content-Length: field $clen = isset($head['content-length']) ? $head['content-length'] : 0; // cannot retrieve file size, return “-1” if (!$clen) { return 0; } if (!$formatSize) { return $clen; // return size in bytes } $size = $clen; switch ($clen) { case $clen < 1024: $size = $clen .' B'; break; case $clen < 1048576: $size = round($clen / 1024, 2) .' KB'; break; case $clen < 1073741824: $size = round($clen / 1048576, 2) . ' MB'; break; case $clen < 1099511627776: $size = round($clen / 1073741824, 2) . ' GB'; break; } return $size; }2 từ tiêu đềĐây là cách tốt nhất (mà tôi đã tìm thấy) để lấy kích thước của tệp từ xa. Lưu ý rằng các yêu cầu HEAD không nhận được nội dung thực của yêu cầu, chúng chỉ truy xuất các tiêu đề. Vì vậy, thực hiện yêu cầu HEAD đối với tài nguyên có dung lượng 100 MB sẽ mất cùng thời gian với yêu cầu HEAD đối với tài nguyên có dung lượng 1KB function curlRemoteFilesize( $url, $formatSize = true ) { // Assume Failure $result = 0; $curl = curl_init( $url ); // Issue a HEAD request and follow any redirects. curl_setopt($curl, CURLOPT_NOBODY, true); curl_setopt($curl, CURLOPT_HEADER, true); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); $data = curl_exec( $curl ); curl_close( $curl ); if( $data ) { $content_length = 0; $status = 0; if( preg_match("/^HTTP\/1\.[01] (\d\d\d)/", $data, $matches) ) { $status = (int)$matches[1]; } if( preg_match("/Content-Length: (\d+)/", $data, $matches) ) { $content_length = (int)$matches[1]; } // http://en.wikipedia.org/wiki/List_of_HTTP_status_codes if( $status == 200 || ($status > 300 && $status <= 308) ) { $result = $content_length; } } if (!$formatSize) { return $result; // return size in bytes } $size = $result; switch ($clen) { case $clen < 1024: $size = $clen .' B'; break; case $clen < 1048576: $size = round($clen / 1024, 2) .' KB'; break; case $clen < 1073741824: $size = round($clen / 1048576, 2) . ' MB'; break; case $clen < 1099511627776: $size = round($clen / 1073741824, 2) . ' GB'; break; } return $size; } 2. ) Gửi yêu cầu GET function getRemoteFilesize($file_url, $formatSize = true) { $head = array_change_key_case(get_headers($file_url, 1)); // content-length of download (in bytes), read from Content-Length: field $clen = isset($head['content-length']) ? $head['content-length'] : 0; // cannot retrieve file size, return “-1” if (!$clen) { return 0; } if (!$formatSize) { return $clen; // return size in bytes } $size = $clen; switch ($clen) { case $clen < 1024: $size = $clen .' B'; break; case $clen < 1048576: $size = round($clen / 1024, 2) .' KB'; break; case $clen < 1073741824: $size = round($clen / 1048576, 2) . ' MB'; break; case $clen < 1099511627776: $size = round($clen / 1073741824, 2) . ' GB'; break; } return $size; }3 và trích xuất giá trị function getRemoteFilesize($file_url, $formatSize = true) { $head = array_change_key_case(get_headers($file_url, 1)); // content-length of download (in bytes), read from Content-Length: field $clen = isset($head['content-length']) ? $head['content-length'] : 0; // cannot retrieve file size, return “-1” if (!$clen) { return 0; } if (!$formatSize) { return $clen; // return size in bytes } $size = $clen; switch ($clen) { case $clen < 1024: $size = $clen .' B'; break; case $clen < 1048576: $size = round($clen / 1024, 2) .' KB'; break; case $clen < 1073741824: $size = round($clen / 1048576, 2) . ' MB'; break; case $clen < 1099511627776: $size = round($clen / 1073741824, 2) . ' GB'; break; } return $size; }2 từ tiêu đềSử dụng yêu cầu HEAD và kiểm tra Độ dài nội dung là cách tiêu chuẩn để thực hiện, nhưng nói chung, bạn không thể dựa vào yêu cầu đó vì máy chủ có thể không hỗ trợ yêu cầu đó. Tiêu đề Độ dài nội dung là tùy chọn và hơn nữa, máy chủ thậm chí có thể không triển khai phương thức HEAD. Nếu bạn biết mình đang thăm dò máy chủ nào, thì bạn có thể kiểm tra xem nó có hoạt động hay không, nhưng giải pháp chung là nó không chống đạn được function getRemoteFilesize($file_url, $formatSize = true) { $head = array_change_key_case(get_headers($file_url, 1)); // content-length of download (in bytes), read from Content-Length: field $clen = isset($head['content-length']) ? $head['content-length'] : 0; // cannot retrieve file size, return “-1” if (!$clen) { return 0; } if (!$formatSize) { return $clen; // return size in bytes } $size = $clen; switch ($clen) { case $clen < 1024: $size = $clen .' B'; break; case $clen < 1048576: $size = round($clen / 1024, 2) .' KB'; break; case $clen < 1073741824: $size = round($clen / 1048576, 2) . ' MB'; break; case $clen < 1099511627776: $size = round($clen / 1073741824, 2) . ' GB'; break; } return $size; } 3. ) Mã thay thế nếu không có function getRemoteFilesize($file_url, $formatSize = true) { $head = array_change_key_case(get_headers($file_url, 1)); // content-length of download (in bytes), read from Content-Length: field $clen = isset($head['content-length']) ? $head['content-length'] : 0; // cannot retrieve file size, return “-1” if (!$clen) { return 0; } if (!$formatSize) { return $clen; // return size in bytes } $size = $clen; switch ($clen) { case $clen < 1024: $size = $clen .' B'; break; case $clen < 1048576: $size = round($clen / 1024, 2) .' KB'; break; case $clen < 1073741824: $size = round($clen / 1048576, 2) . ' MB'; break; case $clen < 1099511627776: $size = round($clen / 1073741824, 2) . ' GB'; break; } return $size; }2 trong tiêu đềThật không may, có nhiều máy chủ HTTP không hoạt động chính xác đối với tiêu đề function getRemoteFilesize($file_url, $formatSize = true) { $head = array_change_key_case(get_headers($file_url, 1)); // content-length of download (in bytes), read from Content-Length: field $clen = isset($head['content-length']) ? $head['content-length'] : 0; // cannot retrieve file size, return “-1” if (!$clen) { return 0; } if (!$formatSize) { return $clen; // return size in bytes } $size = $clen; switch ($clen) { case $clen < 1024: $size = $clen .' B'; break; case $clen < 1048576: $size = round($clen / 1024, 2) .' KB'; break; case $clen < 1073741824: $size = round($clen / 1048576, 2) . ' MB'; break; case $clen < 1099511627776: $size = round($clen / 1073741824, 2) . ' GB'; break; } return $size; }1. Vì function getRemoteFilesize($file_url, $formatSize = true) { $head = array_change_key_case(get_headers($file_url, 1)); // content-length of download (in bytes), read from Content-Length: field $clen = isset($head['content-length']) ? $head['content-length'] : 0; // cannot retrieve file size, return “-1” if (!$clen) { return 0; } if (!$formatSize) { return $clen; // return size in bytes } $size = $clen; switch ($clen) { case $clen < 1024: $size = $clen .' B'; break; case $clen < 1048576: $size = round($clen / 1024, 2) .' KB'; break; case $clen < 1073741824: $size = round($clen / 1048576, 2) . ' MB'; break; case $clen < 1099511627776: $size = round($clen / 1073741824, 2) . ' GB'; break; } return $size; }2 phản hồi không có nội dung thực tế nên họ trả về một function getRemoteFilesize($file_url, $formatSize = true) { $head = array_change_key_case(get_headers($file_url, 1)); // content-length of download (in bytes), read from Content-Length: field $clen = isset($head['content-length']) ? $head['content-length'] : 0; // cannot retrieve file size, return “-1” if (!$clen) { return 0; } if (!$formatSize) { return $clen; // return size in bytes } $size = $clen; switch ($clen) { case $clen < 1024: $size = $clen .' B'; break; case $clen < 1048576: $size = round($clen / 1024, 2) .' KB'; break; case $clen < 1073741824: $size = round($clen / 1048576, 2) . ' MB'; break; case $clen < 1099511627776: $size = round($clen / 1073741824, 2) . ' GB'; break; } return $size; }1 khác với một function getRemoteFilesize($file_url, $formatSize = true) { $head = array_change_key_case(get_headers($file_url, 1)); // content-length of download (in bytes), read from Content-Length: field $clen = isset($head['content-length']) ? $head['content-length'] : 0; // cannot retrieve file size, return “-1” if (!$clen) { return 0; } if (!$formatSize) { return $clen; // return size in bytes } $size = $clen; switch ($clen) { case $clen < 1024: $size = $clen .' B'; break; case $clen < 1048576: $size = round($clen / 1024, 2) .' KB'; break; case $clen < 1073741824: $size = round($clen / 1048576, 2) . ' MB'; break; case $clen < 1099511627776: $size = round($clen / 1073741824, 2) . ' GB'; break; } return $size; }4 sẽ làm Đề xuất cho bạn Thanh trượt lời chứng thực JavaScript sành điệu cho blog và trang web Nếu không có tiêu đề function getRemoteFilesize($file_url, $formatSize = true) { $head = array_change_key_case(get_headers($file_url, 1)); // content-length of download (in bytes), read from Content-Length: field $clen = isset($head['content-length']) ? $head['content-length'] : 0; // cannot retrieve file size, return “-1” if (!$clen) { return 0; } if (!$formatSize) { return $clen; // return size in bytes } $size = $clen; switch ($clen) { case $clen < 1024: $size = $clen .' B'; break; case $clen < 1048576: $size = round($clen / 1024, 2) .' KB'; break; case $clen < 1073741824: $size = round($clen / 1048576, 2) . ' MB'; break; case $clen < 1099511627776: $size = round($clen / 1073741824, 2) . ' GB'; break; } return $size; }1, điều đó có nghĩa là kích thước tệp không xác định. Trong trường hợp của bạn, bạn có tiêu đề function getRemoteFilesize($file_url, $formatSize = true) { $head = array_change_key_case(get_headers($file_url, 1)); // content-length of download (in bytes), read from Content-Length: field $clen = isset($head['content-length']) ? $head['content-length'] : 0; // cannot retrieve file size, return “-1” if (!$clen) { return 0; } if (!$formatSize) { return $clen; // return size in bytes } $size = $clen; switch ($clen) { case $clen < 1024: $size = $clen .' B'; break; case $clen < 1048576: $size = round($clen / 1024, 2) .' KB'; break; case $clen < 1073741824: $size = round($clen / 1048576, 2) . ' MB'; break; case $clen < 1099511627776: $size = round($clen / 1073741824, 2) . ' GB'; break; } return $size; }6, có nghĩa là tệp có thể tải xuống là tệp đính kèm vào phản hồi của máy chủ (giống như tệp đính kèm trong email). Vì vậy, ở đây nếu bạn không có tiêu đề Độ dài nội dung, bạn không thể lấy kích thước Bạn sẽ không biết trước kích thước của nội dung nếu không có tiêu đề Độ dài nội dung Nếu bạn không thể kiểm soát máy chủ thì bạn sẽ phải xử lý nó. Một tùy chọn sẽ là truyền dữ liệu vào một tệp tạm thời trên đĩa và khi bạn có tệp đó, bạn có thể xác định kích thước và chuyển nó sang bước tiếp theo trong bất kỳ việc gì bạn đang làm. Bạn có thể truyền nó vào bộ nhớ đệm nhưng vì bạn không biết nó sẽ lớn đến mức nào nên có nguy cơ bạn sẽ hết bộ nhớ Vì vậy, giải pháp duy nhất là tải xuống và đọc nội dung và tìm ra function getRemoteFilesize($file_url, $formatSize = true) { $head = array_change_key_case(get_headers($file_url, 1)); // content-length of download (in bytes), read from Content-Length: field $clen = isset($head['content-length']) ? $head['content-length'] : 0; // cannot retrieve file size, return “-1” if (!$clen) { return 0; } if (!$formatSize) { return $clen; // return size in bytes } $size = $clen; switch ($clen) { case $clen < 1024: $size = $clen .' B'; break; case $clen < 1048576: $size = round($clen / 1024, 2) .' KB'; break; case $clen < 1073741824: $size = round($clen / 1048576, 2) . ' MB'; break; case $clen < 1099511627776: $size = round($clen / 1073741824, 2) . ' GB'; break; } return $size; }7 bằng byte và sau đó làm theo các quy trình tiếp theo function curlRemoteFileContentsize( $url, $formatSize = true ) { $ch = curl_init(); $timeout = 5; //5 is seconds curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT,$timeout); curl_setopt($ch, CURLOPT_HEADER, 1); // this function is called by curl for each header received $tempCURLVar = curl_exec($ch); $webPageContent = $tempCURLVar; curl_close($ch); $result = mb_strlen($webPageContent); if (!$formatSize) { return $result; // return size in bytes } $size = $result; switch ($clen) { case $clen < 1024: $size = $clen .' B'; break; case $clen < 1048576: $size = round($clen / 1024, 2) .' KB'; break; case $clen < 1073741824: $size = round($clen / 1048576, 2) . ' MB'; break; case $clen < 1099511627776: $size = round($clen / 1073741824, 2) . ' GB'; break; } return $size; } 4. ) Mã thay thế nếu không muốn đếm độ dài nội dung/độ dài chuỗifunction getRemoteFilesize($file_url, $formatSize = true) { $head = array_change_key_case(get_headers($file_url, 1)); // content-length of download (in bytes), read from Content-Length: field $clen = isset($head['content-length']) ? $head['content-length'] : 0; // cannot retrieve file size, return “-1” if (!$clen) { return 0; } if (!$formatSize) { return $clen; // return size in bytes } $size = $clen; switch ($clen) { case $clen < 1024: $size = $clen .' B'; break; case $clen < 1048576: $size = round($clen / 1024, 2) .' KB'; break; case $clen < 1073741824: $size = round($clen / 1048576, 2) . ' MB'; break; case $clen < 1099511627776: $size = round($clen / 1073741824, 2) . ' GB'; break; } return $size; }0 Từ cuối cùngHãy nhận biết rằng các được đặt tốt trong tài liệu của bạn. Tất cả phần còn lại nằm trong tay bạn nếu bạn muốn tùy chỉnh nó hoặc chơi với nó. Đó là tất cả những gì chúng tôi có. Nếu bạn có bất kỳ vấn đề nào với mã này trong mẫu của mình, vui lòng liên hệ với chúng tôi để giải thích đầy đủ về vấn đề của bạn. Chúng tôi sẽ trả lời bạn khi thời gian cho phép. Đừng quên chia sẻ điều này với bạn bè của bạn để họ cũng có thể hưởng lợi từ nó và rời đi Làm cách nào để lấy kích thước tệp từ URL trong JavaScript?Cách lấy thông tin tệp (tên, kích thước, loại) trong JavaScript . Nhận tên tệp trong JavaScript. tài liệu. getElementById('tệp'). tệp [0]. . Nhận kích thước tệp trong JavaScript. tài liệu. getElementById('tệp'). tệp [0]. . Nhận loại tệp trong JavaScript. tài liệu. getElementById('tệp'). tệp [0]. . Nhận ngày sửa đổi tệp trong JavaScript. tài liệu Làm cách nào để lấy kích thước tệp trong JavaScript?Cách tiếp cận 1. . Lắng nghe sự kiện thay đổi trên đầu vào Kiểm tra xem có tệp nào là tệp được chọn không. chiều dài > 0 Lấy kích thước của tệp theo tệp. mục (tôi). kích thước Giá trị sẽ được tính bằng byte. Chuyển đổi nó thành bất kỳ đơn vị nào bạn muốn, Megabyte trong trường hợp này bằng Toán học. . Kiểm tra xem kích thước có tuân theo tiêu chí mong muốn của bạn không Làm cách nào để lấy kích thước tệp từ URL trong jquery?ajax({ loại. "HEAD", url. $("#url"). val(), thành công. function () { alert("Kích thước là " + request. getResponseHeader("Content-Length"));
Làm cách nào để lấy kích thước tệp hình ảnh trong js?Trả lời. Sử dụng Chiều rộng tự nhiên và Chiều cao tự nhiên của HTML5
. Các thuộc tính này được hỗ trợ trong tất cả các trình duyệt web chính như Chrome, Firefox, Safari, Opera, Internet Explorer 9 trở lên. |