PDA

View Full Version : پیدا کردن حجم فایل لینک مستقیم



mahian90
چهارشنبه 01 شهریور 1391, 12:21 عصر
سلام به همه دوستان.

من با php کار نکردم. دنبال کدی میگردم که مثلا ادرس لینک رو بگیره و حجم فایل رو نشون بده مثلا اگه لینک

http://www.sitename.com/filename.zip

رو بگیره و حجم فایل رو بده؟

متشکر

AbiriAmir
چهارشنبه 01 شهریور 1391, 13:09 عصر
تابع filesize() باید کار کنه

mahian90
چهارشنبه 01 شهریور 1391, 14:56 عصر
تابع filesize() باید کار کنه

میشه بیشتر توضیح بدید و اگه امکان داره کدش رو برام بزارید

soroush.r70
چهارشنبه 01 شهریور 1391, 15:17 عصر
بفرما


$filename = filesize('upload/'.$row['file'].'');
echo'' . number_format($filename / 1048576, 2) . ' MB' . '<span class="fontfs">حجم فایل</span>


به جای
upload/'.$row['file'].' مسیر و نام فایل خودتو بده

mahian90
چهارشنبه 01 شهریور 1391, 18:08 عصر
بفرما


$filename = filesize('upload/'.$row['file'].'');
echo'' . number_format($filename / 1048576, 2) . ' MB' . '<span class="fontfs">حجم فایل</span>


به جای
upload/'.$row['file'].' مسیر و نام فایل خودتو بده

سلام. ممنون که پاسخ دادید.
همون طور که گفتید به جایupload/'.$row['file'].'
لینک رو گزاشتم اما توی همون خط خطا میگیره

soroush.r70
چهارشنبه 01 شهریور 1391, 18:43 عصر
چه خطایی می ده..؟

mahian90
چهارشنبه 01 شهریور 1391, 19:42 عصر
خودتون ببینید
http://www.parsicivil.com/test/

milad700
پنج شنبه 02 شهریور 1391, 09:49 صبح
این تابع نمی تونه لینک را بخونه بلکه باید آدرس را به صورت معمولی بدهی

مثلا: http://www.sitename.com/filename.zip (http://www.sitename.com/filename.php) غلط است
ولی filename.zip درست است



filesize('filename.zip')

MostafaEs3
پنج شنبه 02 شهریور 1391, 13:32 عصر
اینکار به کمک Curl و یا راه دوم امکانپذیر هست



<?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));


منبع : http://stackoverflow.com/questions/5958725/get-size-of-remote-file-from-url

mahian90
جمعه 03 شهریور 1391, 08:01 صبح
این کدم خطا داره


Warning: curl_setopt() [function.curl-setopt]: CURLOPT_FOLLOWLOCATION cannot be activated when safe_mode is enabled or an open_basedir is set in /home/parsiciv/public_html/test/index.php on line 10
strlen(file_get_contents($url_file));

MMSHFE
جمعه 03 شهریور 1391, 13:16 عصر
دوست عزیز، فایل php.ini رو تغییر بدین و خطی که اولش نوشته safe_mode رو بصورت زیر اصلاح کنید:

safe_mode = Off
ضمناً توی اون خطوطی که اولشون نوشته =extension دنبال این خط بگردین:

;extension=php_curl.dll
و سمی کالن ابتداش رو بردارین. حالا یکبار Apache رو Restart کنید.
موفق باشید.