|
| |
автор: Region (25.01.2008 в 12:44) |
|
| |
для: __Юра__
(20.01.2008 в 12:24)
| | | Тебе что с картинкой то нужно делать? Если просто сохранять её на сервер то можно обойтись 5 строчками кода! зачем тебе нужен размер и заголовки?
[поправлено модератором] | |
| |
|
|
| |
|
|
| |
для: Unkind
(20.01.2008 в 13:03)
| | | HTTP/1.0
работает, только всётаки размер файла не передаёться в заголовках.
Да мне просто, ради интереса, почему для некоторых рисунков загружаеться нормально, а для других нет. | |
| |
|
|
| |
|
|
| |
для: __Юра__
(20.01.2008 в 13:01)
| | | Если Вы поставите HTTP/1.0, то не будет никаких размеров в HEX. И, между прочим, там не всё так просто. Там указывается не размер всего документа, а следующего блока. | |
| |
|
|
| |
|
|
| |
для: Unkind
(20.01.2008 в 12:55)
| | | Это нельзя убирать, так как если в заголовках небыло передано размера файла, то размер файла указываеться в первой страке в 16-ти ричном виде.
Если это убрать, 100% испортиться рисунок(фаил). | |
| |
|
|
| |
|
|
| |
для: __Юра__
(20.01.2008 в 12:47)
| | | Уберите нафиг вот это:
> //Узнаём размер файла
> foreach($out AS $value)
> {
> //Узнаём размер полученого документа Content-Length:
> $error=preg_match_all('|^Content-Length: ([0-9]+)$|i',$value,$out2);
> if($error)
> $ContentLength=$out2[1][0];
> }
> if($ContentLength==FALSE)
> {
> $line=fgets($fp, 124);
> $line=trim($line);
> $error=preg_match('|^([0-9abcdef]+)$|i',$line);
> if(!$error) exit(error(6));
> $ContentLength=hexdec($line);
> } | |
| |
|
|
| |
|
|
| |
для: Unkind
(20.01.2008 в 12:30)
| | | Это не помогло. | |
| |
|
|
| |
|
|
| |
для: __Юра__
(20.01.2008 в 12:24)
| | | В строке "GET ".$path." HTTP/1.1\r\n" исправьте версию протокола на HTTP/1.0 | |
| |
|
|
| |
|
|
| | Вот ни как не могу понять в чём причина, может что-то пропустил.
Вот функция
<?php
header('Content-type: image/jpeg');
function get($host,$path)
{
$fp = @fsockopen($host, 80, $errno, $errstr, 3);
if(!$fp) exit("$errstr ( $errno )");
else
{
$headers = "GET ".$path." HTTP/1.1\r\n";
$headers.= "Host: ".$host."\r\n";
$headers.= "User-Agent: Opera 8.0\r\n";
$headers.= "Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1\r\n";
$headers.= "Connection: Close\r\n\r\n";
fwrite($fp, $headers);
$out=array();
$headr=FALSE;
$line='';
//Получаем заголовки с сервера
while(!$headr)
{
$line=fgets($fp, 1024);
if(trim($line)=='') $headr=TRUE;
else $out[]=trim($line);
}
//Узнаём размер файла
foreach($out AS $value)
{
//Узнаём размер полученого документа Content-Length:
$error=preg_match_all('|^Content-Length: ([0-9]+)$|i',$value,$out2);
if($error)
$ContentLength=$out2[1][0];
}
if($ContentLength==FALSE)
{
$line=fgets($fp, 124);
$line=trim($line);
$error=preg_match('|^([0-9abcdef]+)$|i',$line);
if(!$error) exit(error(6));
$ContentLength=hexdec($line);
}
$line='';
while(!FEOF($fp))
{
$line.=fgets($fp,1024*3);
}
fclose($fp);
echo $line;
}
}
?>
|
При загрузки этой http://mobil-ru.org.ru/downloads/pictures/pred/171/40/foto.jpg
картинки через функцию, загружаеться нормально,
а при загрузки этой
http://mobil-ru.org.ru/downloads/pictures/pred/171/120/foto.jpg
картинки через функцию, она портиться.
Может я что-то упустил? | |
| |
|
|
|