Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.95/21: Рейтинг темы: голосов - 21, средняя оценка - 4.95
 Аватар для Братуха
5 / 5 / 5
Регистрация: 15.07.2012
Сообщений: 773

Неполадка в загрузке аватара

04.09.2012, 23:45. Показов 4199. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот скачал скрипт загрузки аватара
PHP
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
67
68
69
70
    <?PHP echo "Загрузка аватара:<br>";
     
     // если аватар был отправлен юзером, загрузим его
     if($_POST['go']==5)
     {
     // проверим соответсвует ли загружаемый аватар нашим параметрам
     if($_FILES['avatar']['size']>50000){$err_avatar_size='Аватар слишком велик!';}
     if(!($_FILES['avatar']['type']=='image/pjpeg' OR $_FILES['avatar']['type']=='image/jpeg' OR $_FILES['avatar']['type']=='image/gif'))
     {$err_avatar_type='Файл имеет неразрешенный тип!';}
     
     // сохраним аватар на сервере, если нет ошибок
     if(!$err_avatar_size AND !$err_avatar_type)
         {
         $avatar_name=$_SESSION['id'];
         
         $avatar_way="avatars/".$avatar_name; // путь в аватару
         
         // удалим уже существующие аватары
         $avatar_del=$avatar_way.".gif";
         @unlink($avatar_del);
         $avatar_del=$avatar_way.".jpg";
         @unlink($avatar_del);
         
         // добавляем расширение к файлу
         switch($_FILES['avatar']['type'])
             {
             case 'image/pjpeg': $avatar_way.=".jpg"; break;
             case 'image/jpeg': $avatar_way.=".jpg"; break;
             case 'image/gif': $avatar_way.=".gif"; break;
             }
         
         copy($_FILES['avatar']['tmp_name'], $avatar_way); // сохраним файл на сервер
         }
     }
     
     // выведем ошибки, если они есть
     if($err_avatar_size){echo $err_avatar_size;}
     if($err_avatar_type){echo $err_avatar_type;}
     
     $catalog="avatars";
     
     // удалим аватар
     if($_GET['del_avatar'])
     {
     $del_ava=$catalog."/".$_GET['del_avatar'];
     @unlink($del_ava);
     }
     
     
     // отобразим уже загруженный аватар
     $i=1;
     $dir = opendir ($catalog);
     while ($file = readdir ($dir)) 
     {
     if(is_file($catalog."/".$file))
         {
         echo '<br><img src="'.$catalog.'/'.$file.'"></img><br>';
         echo '<a href="'.$_SERVER['PHP_SELF'].'?profile=5&del_avatar='.$file.'">Удалить</a><br>';
         }
     }
     closedir ($dir);
     
     
     // форма загрузки
     ?>
     <form action="<? echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
     <input type="hidden" name="go" value="5">
     <input type="file" name="avatar"><br><br>
     <input type="submit" value="закачать"><input type="Reset" value="сброс">
     </form>
Но какие картинки я бы не загружал пишет "Файл имеет неразрешенный тип" хотя тип совпадает? Помогите пожалуйста, зарание большое спасибо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.09.2012, 23:45
Ответы с готовыми решениями:

При загрузке аватара - ошибка Internal Server Error
Добрый день! При загрузке аватара, ошибка The server encountered an internal error or misconfiguration and was unable to complete your...

Ошибка при загрузке аватара
При загрузке аватара из профиля пользователя после нажатия кнопки &quot;Сохранить&quot; посылает на страницу: При этом аватар...

Значение аватара
Привет всем, у меня такой вопрос закрался: а влияет ли аватар на отношение к человеку? Как вы считаете?

27
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
11.09.2012, 18:26
Студворк — интернет-сервис помощи студентам
die замени на echo

Добавлено через 2 минуты
Кликните здесь для просмотра всего текста
PHP
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
<?php 
function foo($photo) {
 
    if(!empty($photo['img'])) {
        $ImgInfo = getimagesize($photo['img']['tmp_name']);
        #тип картинки
        $types = array('image/jpeg','image/png','image/gif'); #сюда другие можно дописать если надо
        
        if(!in_array($ImgInfo['mime'],$types)) echo 'Картинка должна быть формата JPEG,GIF или PNG';
        else {
            #размер картинки
            if($ImgInfo[0] > 50 || $ImgInfo[1] > 70 || empty($ImgInfo[0])) 
                echo 'Ширина должна быть меньше 50 и высота меньше 70 пикселей';
            else { #размер нормальный
                $ImgName = 'avatars/'; #путь к картинкам
                $ImgName .= $_SESSION['user_data']['email'].'.'.substr($ImgInfo['mime'],6); #уверены что одинаковых логинов не будет?)
                
                if(move_uploaded_file($photo['img']['tmp_name'],$ImgName))
                    echo 'Фотография успешно загружена!';
                else 
                    echo 'Произошла ошибка при загрузке фотографии.';
            }
        }
    }
 
}
?>
<form method="post" enctype="multipart/form-data">
<input type="file" name="img" />
<input type="submit" name="upload" value="Загрузить" />
</form>
<?php
if(isset($_POST['upload'])) {
foo($_FILES);
 
}
?>
1
 Аватар для Братуха
5 / 5 / 5
Регистрация: 15.07.2012
Сообщений: 773
11.09.2012, 18:35  [ТС]
А вот еще что как только пытаюсь загрузить картинку P2123100.JPG она весит 2 MB написало мне "Warning: getimagesize() [function.getimagesize]: Filename cannot be empty in Y:\home\test2.ru\www\skins\tpl\register\ form_redact_info.tpl on line 16
Картинка должна быть формата JPEG,GIF или PNGШирина должна быть меньше 50 и высота меньше 70 пикселей"
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
11.09.2012, 18:44
это надо больше прописать разрешенный размер пост-данных. В .htaccess пропиши
Bash
1
php_value upload_max_filesize 5M
- 5M это 5 мегабайт
1
 Аватар для Братуха
5 / 5 / 5
Регистрация: 15.07.2012
Сообщений: 773
11.09.2012, 18:50  [ТС]
Все равно выбевает ошибку
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
11.09.2012, 20:42
PHP
1
var_dump($_FILES['img']['error']);exit;
а затем напиши что выдаст (внутри функции это писать, в самом начале)
1
 Аватар для Братуха
5 / 5 / 5
Регистрация: 15.07.2012
Сообщений: 773
11.09.2012, 22:31  [ТС]
Ничего не выдало вот где я написал
PHP
1
2
<?php function foo($photo) {
var_dump($_FILES['img']['error']);exit;
Извените вот что выдало int(1)
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
11.09.2012, 22:39
Это значит что размер загруженного файла превысил размер директивы upload_max_filesize. В .htaccess прописывали то, что я выше писал? Файл .htaccess находится в этой же директории, или настроен на директорию?
Можете вручную поменять, если есть доступ к php.ini (в чем я сомневаюсь).
Если не работает - возможно хостер не дает вам такую возможность - менять эту директиву
Тогда либо вопрос в техподдержку, либо смена хостинга где разрешается
1
 Аватар для Братуха
5 / 5 / 5
Регистрация: 15.07.2012
Сообщений: 773
11.09.2012, 22:56  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
Это значит что размер загруженного файла превысил размер директивы upload_max_filesize. В .htaccess прописывали то, что я выше писал? Файл .htaccess находится в этой же директории, или настроен на директорию?
Можете вручную поменять, если есть доступ к php.ini (в чем я сомневаюсь).
Если не работает - возможно хостер не дает вам такую возможность - менять эту директиву
Тогда либо вопрос в техподдержку, либо смена хостинга где разрешается
А если Ограничеть загрузку файлов которые превышают 2 мегабайта? Я загружал 1,5 без проблем. И вот, что еще выяснилось.Если я загружаю картинку одного формата, а затем загружаю другого (одним профилем) то обе картинки сохраняются, как сделать так что бы при второй загрузке файла прошлая картинка с другим форматом удалилась?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.09.2012, 22:56
Помогаю со студенческими работами здесь

Загрузка аватара
Помогите пожалуйста с загрузкой авы пользователя. Т.е. чтобы после авторизации пользователь смог на странице загрузить себе аву. Моя...

Выбор аватара...
Здравствуйте уважаемые форумчане... Вот решил, создать тему по поводу выбору аватаров: Чем вы руководствовались при выборе вашего...

Вывод аватара в комментариях
Здравствуйте, я хочу вывести в комментариях аватар для каждого пользователя.. Пытаюсь через php вывести из 2х таблиц данные. Из одной...

Подгрузка аватара пользователя
Добрый день. Подскажите пожалуйста как вывести фото пользователя в его личный кабинет. Есть страничка где пользователь добавляет о себе...

Стиль пользовательского аватара
Здравствуйте, есть ли у вас идеи как придать стиль пользовательскому фото как на примере (во вложении). Пока смог только закруглить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru