PDA

View Full Version : تشخیص حجم فایل یک لینک دانلود



RAYMOON
جمعه 09 تیر 1391, 23:05 عصر
با سلام من می خواستم راهی است بشه که وقتی یک لینک دانلود یک فایل رو از لینک خارجی

توی برنامم سایزش رو تشخیص بده

تشخیص حجم فایل های داخلی رو کدش رو دارم میتونم سایزش رو مشخص کنم

می خوام یک لینک خارجی مثلا از یک سایت دیگه یک فایل mp3 رو توی برنامم دارم حجمش رو برنامم تشخیص بده
متشکر میشم دوستان کمک کنید:قلب:

reza10wert
جمعه 09 تیر 1391, 23:31 عصر
سلام دوست عزیز
میتونید از این استفاده کنید ببنید به دردتون میخوره

$filename = 'somefile.txt';
echo $filename . ': ' . filesize($filename) . ' bytes';

RAYMOON
شنبه 10 تیر 1391, 00:38 صبح
با سلام متشکر من اولش گفتم می تونم سایز یک فایل رو که توی خود سایت هستش رو بدست بیارم من منظورم لینک خارجی از یک سایت دیگه است

RAYMOON
شنبه 10 تیر 1391, 00:57 صبح
حل شد...!
دوستان می تونید از این کد استفاده کنید به درستی کار میکنه فقط حجم رو به بایت میزنه




<?php
$remoteFile = 'http://download.thinkbroadband.com/5MB.zip';
$ch = curl_init($remoteFile);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); //not necessary unless the file redirects (like the PHP example we're using here)
$data = curl_exec($ch);
curl_close($ch);
if ($data === false) {
echo 'cURL failed';
exit;
}

$contentLength = 'unknown';
$status = 'unknown';
if (preg_match('/^HTTP\/1\.[01] (\d\d\d)/', $data, $matches)) {
$status = (int)$matches[1];
}
if (preg_match('/Content-Length: (\d+)/', $data, $matches)) {
$contentLength = (int)$matches[1];
}

echo 'HTTP Status: ' . $status . "\n";
echo 'Content-Length: ' . $contentLength;
?>

RAYMOON
شنبه 10 تیر 1391, 01:22 صبح
برای تبدیل بایت به دیگر حجم ها هم از این روش استفاده کنید

function format_bytes($contentLength) {
$units = array(' B', ' KB', ' MB', ' GB', ' TB');
for ($i = 0; $contentLength >= 1024 && $i < 4; $i++) $contentLength /= 1024;
return round($contentLength, 2).$units[$i];
}

echo format_bytes($contentLength);