Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Загрузка рисунков / 4 сообщений из 4, страница 1 из 1
07.02.2006, 16:08:08
    #33529127
HunterWild
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Загрузка рисунков
Добрый день!
Подскажите, плиз, каким способом можно закачать рисунок
с какого-то сервера на свой.
Например: имеется ссылка http://example.com/img/filename.gif
Мне нужно закачать его на свой сервер.
Заранее благодарен.
...
Рейтинг: 0 / 0
07.02.2006, 16:29:24
    #33529195
Black
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Загрузка рисунков
будьте добры, воспользоваться поиском, обсуждалось раз 100!!
...
Рейтинг: 0 / 0
07.02.2006, 16:30:04
    #33529200
Berkut
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Загрузка рисунков
Воровать контент не хорошо.
...
Рейтинг: 0 / 0
08.02.2006, 15:37:44
    #33531793
Damnedest
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Загрузка рисунков
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
if ( $avatar_mode == 'remote' && preg_match('/^(http:\/\/)?([\w\-\.]+)\:?([0-9]*)\/(.*)$/', $avatar_filename, $url_ary) )
        {
                if ( empty($url_ary[ 4 ]) )
                {
                        $error = true;
                        $error_msg = ( !empty($error_msg) ) ? $error_msg . '<br />' . $lang['Incomplete_URL'] : $lang['Incomplete_URL'];
                        return;
                }

                $base_get = '/' . $url_ary[ 4 ];
                $port = ( !empty($url_ary[ 3 ]) ) ? $url_ary[ 3 ] :  80 ;

                if ( !($fsock = @fsockopen($url_ary[ 2 ], $port, $errno, $errstr)) )
                {
                        $error = true;
                        $error_msg = ( !empty($error_msg) ) ? $error_msg . '<br />' . $lang['No_connection_URL'] : $lang['No_connection_URL'];
                        return;
                }

                @fputs($fsock, "GET $base_get HTTP/1.1\r\n");
                @fputs($fsock, "HOST: " . $url_ary[ 2 ] . "\r\n");
                @fputs($fsock, "Connection: close\r\n\r\n");

                unset($avatar_data);
                while( !@feof($fsock) )
                {
                        $avatar_data .= @fread($fsock, $board_config['avatar_filesize']);
                }
                @fclose($fsock);

                if (!preg_match('#Content-Length\: ([0-9]+)[^ /][\s]+#i', $avatar_data, $file_data1) || !preg_match('#Content-Type\: image/[x\-]*([a-z]+)[\s]+#i', $avatar_data, $file_data2))
                {
                        $error = true;
                        $error_msg = ( !empty($error_msg) ) ? $error_msg . '<br />' . $lang['File_no_data'] : $lang['File_no_data'];
                        return;
                }

                $avatar_filesize = $file_data1[ 1 ];
                $avatar_filetype = $file_data2[ 1 ];

                if ( !$error && $avatar_filesize >  0  && $avatar_filesize < $board_config['avatar_filesize'] )
                {
                        $avatar_data = substr($avatar_data, strlen($avatar_data) - $avatar_filesize, $avatar_filesize);

                        $tmp_path = ( !@$ini_val('safe_mode') ) ? '/tmp' : './' . $board_config['avatar_path'] . '/tmp';
                        $tmp_filename = tempnam($tmp_path, uniqid(rand()) . '-');

                        $fptr = @fopen($tmp_filename, 'wb');
                        $bytes_written = @fwrite($fptr, $avatar_data, $avatar_filesize);
                        @fclose($fptr);

                        if ( $bytes_written != $avatar_filesize )
                        {
                                @unlink($tmp_filename);
                                message_die(GENERAL_ERROR, 'Could not write avatar file to local storage. Please contact the board administrator with this message', '', __LINE__, __FILE__);
                        }

                        list($width, $height, $type) = @getimagesize($tmp_filename);
                }
                else
                {
                        $l_avatar_size = sprintf($lang['Avatar_filesize'], round($board_config['avatar_filesize'] /  1024 ));

                        $error = true;
                        $error_msg = ( !empty($error_msg) ) ? $error_msg . '<br />' . $l_avatar_size : $l_avatar_size;
                }
        }

Взято из PHPbb 2.0.19.
Файл usercp_avatar.php
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Загрузка рисунков / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]