|
|
|
| Нужно загрузить файл с указанного URL но ограничить размер 500kb
я делаю так:
$maxsize = (1024*500);
$fp = fopen('http://'.$url,'r');
$data = fread($fp,$maxsize);
if(!feof($fp)) exit("Файл слишком большой");
|
| |
|
|
|
|
|
|
|
для: LEM
(30.10.2006 в 16:00)
| | Но всегда пишет что файл большой.
Может есть другие способы ?
А то я видимо не доконца понимаю работу fread :) | |
|
|
|
|
|
|
|
для: LEM
(30.10.2006 в 16:04)
| | При первом чтении признак конца файла установлен не будет.
Только при втором чтении, когда будет предпринята попытка взять данные, которых нет. | |
|
|
|
|
|
|
|
для: LEM
(30.10.2006 в 16:00)
| | Хм... так он у вас всегда сначала файла будет читать вам следует использовать конструкцию
<?php
$maxsize = 500;
$i = 0;
$data = "";
$fp = fopen('http://'.$url,'r');
while(!feof($fp))
{
$data .= fread($fp,1024);
$i++;
if($maxsize < $i) break;
}
?>
|
После того, как загрузили первый кусок, загружайте второй
<?php
$begin = 500;
$end = 1000;
$i = 0;
$data = "";
$fp = fopen('http://'.$url,'r');
while(!feof($fp))
{
$buffer = fread($fp,1024); ;
if($i < $begin) countinue;
$data .= $buffer;
$i++;
if($end < $i) break;
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(30.10.2006 в 16:15)
| | В смысле второй кусок?
И $end=1000; это что?
P.S.: max filesize 500kb.
А другие способы есть? с помощью ini_set низя? | |
|
|
|
|
|
|
|
|
для: Trianon
(30.10.2006 в 17:51)
| | Эта директива для ограничения размера upload | |
|
|
|