progpars

دریافت سایز فایل از url

11 پست در این موضوع قرار دارد

سلام

با تابع filesize() که این اختیار رو نداریم سایز یک فایل رو بدست بیاریم .

خواستم یک راهی باشه به جز ftp connect که بشه از آدرس یک فایل (site.com/file.zip) سایز یک فایل رو بدست آورد .

به اشتراک گذاری این پست


لینک به پست

منظور شما از سایز چیه در واقع منظور از فایل یعنی چی ؟

بعد این فایل که قراره مشخصش کنید تو پنل وردپرس آپلود شده ؟

به اشتراک گذاری این پست


لینک به پست

ما یک فایل zip داریم تو پنل وردپرس آپلود شده حالا باید سایزش رو دریافت کنم حالا مسیر ما هم remote هست از طریق url که تابع filesize نمیتونه این کار رو انجام بده

به اشتراک گذاری این پست


لینک به پست

اینم از تابع همین الانم تستش کردم کار میکرد


function get_file_size($ID, $digits = 2) {
$file = get_attached_file( $ID );
if (is_file($file)) {
$filePath = $file;
if (!realpath($filePath)) {
$filePath = $_SERVER["DOCUMENT_ROOT"].$filePath;
}
$fileSize = filesize($filePath);
$sizes = array("TB","GB","MB","KB","B");
$total = count($sizes);
while ($total-- && $fileSize > 1024) {
$fileSize /= 1024;
}
return round($fileSize, $digits)." ".$sizes[$total];
}
return false;
}

برای استفاده کافیه


<?php
// the number 3 shows the float number in divition
echo get_file_size( 412, 3 );
?>

به اشتراک گذاری این پست


لینک به پست

فانکشنی رو که نوشتید رو اکو کردم چیزی چاپ نکرد !

به اشتراک گذاری این پست


لینک به پست

دقیقا منم دنبال همچین چیزیم اگه اشتباه نکنم قبلا آقا مرتضی یه سایت معرقفی کرده بود که همچین اسکریپی ساده تک فایلی معرفی کرده بود که میتونستید تو سایت فراخونی کنید

هرچی گشتم نمیدونم تو کدوم تاپیک ولی اگه لاتین سرچ کنید پیداش میکنید

به اشتراک گذاری این پست


لینک به پست

من کلاْ بخشی رو دارم ایجاد میکنم که سایز فایل و نام فایل و فرمت فایل وشمارنده دانلود فایل رو باید از آدرس زمینه دلخواهی که من دادم بگیره حالا خواستم به صورت فانکشن بنویسیم که من آدرس url رو دارم باید این مشخصات رو ازش بگیرم

به اشتراک گذاری این پست


لینک به پست

کداشو لطف میکنید :)

به اشتراک گذاری این پست


لینک به پست

<?php
function getRemoteFileSize($url){
$parsed = parse_url($url);
$host = $parsed["host"];
$fp = @fsockopen($host, 80, $errno, $errstr, 20);
if(!$fp)return false;
else {
@fputs($fp, "HEAD $url HTTP/1.1\r\n");
@fputs($fp, "HOST: $host\r\n");
@fputs($fp, "Connection: close\r\n\r\n");
$headers = "";
while(!@feof($fp))$headers .= @fgets ($fp, 128);
}
@fclose ($fp);
$return = false;
$arr_headers = explode("\n", $headers);
foreach($arr_headers as $header) {
$s = "Content-Length: ";
if(substr(strtolower ($header), 0, strlen($s)) == strtolower($s)) {
$return = trim(substr($header, strlen($s)));
break;
}
}
if($return){
$size = round($return / 1024, 2);
$sz = "KB"; // Size In KB
if ($size > 1024) {
$size = round($size / 1024, 2);
$sz = "MB"; // Size in MB
}
$return = "$size $sz";
}
return $return;
}
//File size of Google Image
echo "yahoo Logo Size : <b>" . getRemoteFileSize('http://us.i1.yimg.com/us.yimg.com/i/ww/beta/y3.gif') . "</b>� (http://us.i1.yimg.com/us.yimg.com/i/ww/beta/y3.gif)";
echo "<br>google logo sized Image : <b>" . getRemoteFileSize('http://www.google.co.in/intl/en_com/images/logo_plain.png') ."</b>� (http://www.google.co.in/intl/en_com/images/logo_plain.png)";
?>

بفرما دوست عزیز

دنبال فرمت هم هستم اگه شما پیدا کردی اینجا قرار بدید تا به کمک هم بتونیم به یه شکل شیکومجلسی پیادش کنیم

به اشتراک گذاری این پست


لینک به پست

سعی کنید سوالتون رو در بخش مربوطه ارسال کنید (PHP)

پاسخ mehral برای پیوستهای وردپرس هست


function remote_file_size($url){
$head = "";
$url_p = parse_url($url);
$host = $url_p["host"];
if(!preg_match("/[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*/",$host)){
$ip=gethostbyname($host);
if(!preg_match("/[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*/",$ip)){
return -1;
}
}
if(isset($url_p["port"]))
$port = intval($url_p["port"]);
else
$port = 80;
if(!$port) $port=80;
$path = $url_p["path"];
$fp = fsockopen($host, $port, $errno, $errstr, 20);
if(!$fp) {
return false;
} else {
fputs($fp, "HEAD " . $url . " HTTP/1.1\r\n");
fputs($fp, "HOST: " . $host . "\r\n");
fputs($fp, "User-Agent: http://www.example.com/my_application\r\n");
fputs($fp, "Connection: close\r\n\r\n");
$headers = "";
while (!feof($fp)) {
$headers .= fgets ($fp, 128);
}
}
fclose ($fp);
$return = -2;
$arr_headers = explode("\n", $headers);
foreach($arr_headers as $header) {
$s1 = "HTTP/1.1";
$s2 = "Content-Length: ";
$s3 = "Location: ";
if(substr(strtolower ($header), 0, strlen($s1)) == strtolower($s1)) $status = substr($header, strlen($s1));
if(substr(strtolower ($header), 0, strlen($s2)) == strtolower($s2)) $size = substr($header, strlen($s2));
if(substr(strtolower ($header), 0, strlen($s3)) == strtolower($s3)) $newurl = substr($header, strlen($s3));
}
if(intval($size) > 0) {
$return=intval($size);
} else {
$return=$status;
}
if (intval($status)==302 && strlen($newurl) > 0) {
$return = remote_file_size($newurl);
}
return $return;
}


function retrieve_remote_file_size($url){
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_NOBODY, TRUE);
$data = curl_exec($ch);
$size = curl_getinfo($ch, CURLINFO_CONTENT_LENGTH_DOWNLOAD);
curl_close($ch);
return $size;
}


<?php
$remoteFile = 'http://us.php.net/get/php-5.2.10.tar.bz2/from/this/mirror';
$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;
?>


<?php
// URL to file (link)
$file = 'http://example.com/file.zip';
$ch = curl_init($file);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$data = curl_exec($ch);
curl_close($ch);
if (preg_match('/Content-Length: (\d+)/', $data, $matches)) {
// Contains file size in bytes
$contentLength = (int)$matches[1];
}
?>


strlen(file_get_contents($url_file));

منتقل شد

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری