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

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

04.09.2012, 23:45. Показов 4197. Ответов 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
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
05.09.2012, 09:28
У меня нормально загружает...
1
 Аватар для Братуха
5 / 5 / 5
Регистрация: 15.07.2012
Сообщений: 773
09.09.2012, 09:55  [ТС]
Цитата Сообщение от Lyodik Посмотреть сообщение
У меня нормально загружает...
может кто-нибудь подскажет какой нибудь скрипт загрузки аватара, главное что бы была проверка на максимальный размер, тип картинки и сохранялась картинка с именем логина пользователя. Зарание огромное спасибо. Очень надо, немогу найти.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
09.09.2012, 12:06
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
<?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)) die('Картинка должна быть формата JPEG,GIF или PNG');
#размер картинки
if($ImgInfo[0] > 50 || $ImgInfo[1] > 70 || empty($ImgInfo[0])) 
 die('Ширина должна быть меньше 50 и высота меньше 70 пикселей');
else { #размер нормальный
$ImgName = 'путь/к/картинкам/'; #путь к картинкам
$ImgName .= $_SESSION['login'].substr($ImgInfo['mime'],6); #уверены что одинаковых логинов не будет?)
if(move_uploaded_file($photo['img']['tmp_name'],$ImgName))
echo 'Фотография успешно загружена!';
else echo 'Произошла ошибка при загрузке фотографии.';
}
}
}
 
#вызов функции и вывод формы
if(!empty($_SESSION['login']) && (еще что то)) { #нажатая кнопка загрузить или че там еще
?>
<form method="post">
<input type="file" name="img" />
<input type="submit" name="upload" value="Загрузить" />
</form>
<?php
if(isset($_POST['upload'])) {
foo($_FILES);
}
}
?>
Добавлено через 3 минуты
P.S. если что - скрипт не проверял
1
 Аватар для Братуха
5 / 5 / 5
Регистрация: 15.07.2012
Сообщений: 773
09.09.2012, 15:14  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
PHP
1
2
#вызов функции и вывод формы
if(!empty($_SESSION['login']) && (еще что то)) { #нажатая кнопка загрузить или че там еще
что значит "еще что то"?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
09.09.2012, 15:21
ну нажатие кнопки или ссылки чтобы появилась эта форма загрузки - она же не сразу появляется.
Что то типа "У Вас еще нет аватара. Нажмите здесь, чтобы загрузить его"
1
 Аватар для Братуха
5 / 5 / 5
Регистрация: 15.07.2012
Сообщений: 773
09.09.2012, 15:29  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
ну нажатие кнопки или ссылки чтобы появилась эта форма загрузки - она же не сразу появляется.
Что то типа "У Вас еще нет аватара. Нажмите здесь, чтобы загрузить его"
У меня есть страничка обновления на которой расположеняа вся информация и в том числе форма для загрузки. Я так понял, что бы все работало надо удалить эту часть сейчас попробую. Как только попробывал загрузить аватар ничего не вышло просто обновляет страничку и ничего не пишет
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
09.09.2012, 15:46
1. должны быть включены сессии (session_start())
2. должна существовать сессия с именем login ($_SESSION['login'])
1
 Аватар для Братуха
5 / 5 / 5
Регистрация: 15.07.2012
Сообщений: 773
09.09.2012, 16:00  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
1. должны быть включены сессии (session_start())
2. должна существовать сессия с именем login ($_SESSION['login'])
У меня в $_SESSION['log'] заложено значение логина и через оператор echo выводится логин.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
09.09.2012, 16:05
ну так замените в моем коде $_SESSION['login'] на $_SESSION['log']

Добавлено через 3 минуты
Извиняюсь, проблема в моем коде, я тип кодировки данных забыл указать. начало формы замените на
HTML5
1
<form method="post" enctype="multipart/form-data">
1
 Аватар для Братуха
5 / 5 / 5
Регистрация: 15.07.2012
Сообщений: 773
09.09.2012, 16:09  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
Извиняюсь, проблема в моем коде. начало формы замените на
HTML5
1
<form method="post" enctype="multipart/form-data">
Заменил, написало что произошла ошибка при загрузке, может неправильно установил директорию. Я писал avatars/ создовал папку в корне под названием avatars? Или надо относительно скрипта?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
09.09.2012, 16:14
смотря как вы указываете путь. От корневой директории нужно писать ./avatars, но должна быть установлена корневая директория в эту папку. А если по простому, то да, относительно скрипта

Добавлено через 1 минуту
то есть если у вас
PHP
1
echo $_SERVER['DOCUMENT_ROOT'];
выдает именно ту папку, что вам нужно - внутри которой находится папка с аватарами - то пишите ./avatars
1
 Аватар для Братуха
5 / 5 / 5
Регистрация: 15.07.2012
Сообщений: 773
09.09.2012, 16:20  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
то есть если у вас
PHP
1
echo $_SERVER['DOCUMENT_ROOT'];
выдает именно ту папку, что вам нужно - внутри которой находится папка с аватарами - то пишите ./avatars
В общем попробывал я написать ./avatars, до того как вы указали интерестную строку, пишет что успешно добавило, но как только захожу в папку никакой аватарки нет.
PHP
1
echo $_SERVER['DOCUMENT_ROOT'];
выдало Y:/home/test4.ru/www
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
09.09.2012, 16:22
А права на запись стоят у скрипта?
1
 Аватар для Братуха
5 / 5 / 5
Регистрация: 15.07.2012
Сообщений: 773
09.09.2012, 16:31  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
А права на запись стоят у скрипта?
Что бы я знал как это делать
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
09.09.2012, 16:34
по фтп зайдите на диск и посмотрите права (правой кнопкой по скрипту -> Права доступа к файлу или как то так)

Добавлено через 27 секунд
или можете попробовать
PHP
1
chmod('имя скрипта',0755);
1
 Аватар для Братуха
5 / 5 / 5
Регистрация: 15.07.2012
Сообщений: 773
09.09.2012, 16:52  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
по фтп зайдите на диск и посмотрите права (правой кнопкой по скрипту -> Права доступа к файлу или как то так)

Добавлено через 27 секунд
или можете попробовать
PHP
1
chmod('имя скрипта',0755);
А это можно проверить на компьютере или это надо делать только на сервере? Я пока делаю все на компе - тестирую денвером.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
09.09.2012, 17:05
тогда должно работать и без прав, у вас же я так понимаю винда стоит..

Добавлено через 16 секунд
проверь, пропиши путь относительно скрипта
1
 Аватар для Братуха
5 / 5 / 5
Регистрация: 15.07.2012
Сообщений: 773
09.09.2012, 17:54  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
тогда должно работать и без прав, у вас же я так понимаю винда стоит..

Добавлено через 16 секунд
проверь, пропиши путь относительно скрипта
Все получилось только сохраняет без точки между названием и фарматом не могу понять где надо добавить? И еще вопрос как можно вывести аватар я знаю что через условие но как убрать расширение аватара и как вообще достать название из папки?
Все нашел как добавить точку
0
 Аватар для Братуха
5 / 5 / 5
Регистрация: 15.07.2012
Сообщений: 773
11.09.2012, 18:19  [ТС]
у меня возникла проблемма вот то что я использую
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
<?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)) die('Картинка должна быть формата JPEG,GIF или PNG');
#размер картинки
if($ImgInfo[0] > 50 || $ImgInfo[1] > 70 || empty($ImgInfo[0])) 
 die('Ширина должна быть меньше 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);
 
}
?>
проблемма в том что как только я пытаюсь загрузить картинку не того размера, то все пропадает и остается толька форма для загрузки. Помогите решить проблемму. Зарание большое спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.09.2012, 18:19
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Управление камерой с помощью скрипта 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 позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru