Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

upload картинок на сайт

13K
02 февраля 2007 года
Mayc
38 / / 01.02.2007
Хочу сделать при регистрации пользователей возможность добавления рисунка(аватара). Попробовал написать своими силами, вот не получается и теперь я здесь))
Итак
1. Форма:
 
Код:
...
   echo "<tr><td>Аватара:</td>";
   echo "<td><input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"100000\">";
   echo "<input type=\"file\" name=\"avatare\" maxlength=\"50\"></td></tr>";
...

2. Принимающий файл:
Код:
...
if(empty($avatare))
    {
     $avatare="Нет рисунка"; 
    }
    else
    {
$uploaddir = '/img/avatares/';
if (move_uploaded_file($_FILES['avatare']['tmp_name'], $uploaddir .
    $_FILES['avatare']['name'])) {
    print "File is valid, and was successfully uploaded.";
} else {
    print "There some errors!";
}
    }
...
$query="INSERT INTO `users` VALUES ('null','".$name."','".md5($password)."','".$email."',[COLOR="Red"]'".$avatare."'[/COLOR],'".$firstname."','".$age."','".$icq."','".$city."','".$ip."','".$datareg."','".$privelegie."','".$status."')";

Теперь рассказываю суть проблемы. Из формы передаются данные, пишется сообщение об удачной конфигурации и вылетает обработанное сообщение ошибки "print "There some errors!";" Понятно, что файл не залит в заданную директорию. Однако идём дальше открыв эту таблицу базы данных я вижу что в поле "avatares" записан путь к файлу на компьютере добавлявшего(т.е. меня=))
 
Код:
G:\картинки\av-18791.jpg

Настройки пхп.ини:
 
Код:
...
file_uploads = On
upload_tmp_dir = "C:\Program Files\ALTdenwer\complex\www\web\img\avatares"
upload_max_filesize = 2M
...
244
02 февраля 2007 года
UAS
2.0K / / 19.07.2006
Не скажу что уверен, но может проблема в этой строчке:
$uploaddir = '/img/avatares/';
может надо так записать: $uploaddir = './img/avatares/';

ибо я так понял работаете под виндой, а путь указываете абсолютный получается (наподобии никсов)
355
02 февраля 2007 года
&lt;SCORP&gt;
786 / / 21.10.2006
проблма в том, что надо доки читать и поиск использовать. тема затёртая до невозможности. в твоём случае лечиться добавлением форме атрибута encoding="multipart/form-data" (кажется encoding, ради такого вопроса даже лень где-то рыться)
92
02 февраля 2007 года
Тень Пса
2.2K / / 19.10.2006
тебе <SCORP> лень, а автору видать еще больше лень )))))

видать себя чайником не посчитал ))))

http://forum.codenet.ru/showpost.php?p=167661&postcount=2 "гоу энд рид" )
355
02 февраля 2007 года
&lt;SCORP&gt;
786 / / 21.10.2006
мда, я даже почти угадал с именем атрибута ))))
92
02 февраля 2007 года
Тень Пса
2.2K / / 19.10.2006
:D наман ))))

вот разделы (темы всмысле) создаются для новичков ))) вопросы раскрытые даже структурируются и собираются.... в 1м сообщении, а им лень заглянуть... "срамнО товарисчи новички, срамнО" :)

ЗАГЛЯДЫВАЙТЕ В ТЕМЫ "... ДЛЯ ЧАЙНИКОВ" прежде чем задать вопрос ) особенно такого плана ))))
256
02 февраля 2007 года
foxweb
1.0K / / 27.07.2005
Цитата: Тень Пса
:D наман ))))

вот разделы (темы всмысле) создаются для новичков ))) вопросы раскрытые даже структурируются и собираются.... в 1м сообщении, а им лень заглянуть... "срамнО товарисчи новички, срамнО" :)

ЗАГЛЯДЫВАЙТЕ В ТЕМЫ "... ДЛЯ ЧАЙНИКОВ" прежде чем задать вопрос ) особенно такого плана ))))



Да уж, сегодня полдня старался )) Если энтузиазм не иссякнет - будет продолжение!

256
02 февраля 2007 года
foxweb
1.0K / / 27.07.2005
оффтоп: ALTdenwer - это что ещё за очередная хрень для ламеров???
13K
03 февраля 2007 года
Mayc
38 / / 01.02.2007
И ещё вопросик. Загрузку файла я сделал, теперь я перешёл к проверке файла. Где можно почитать подробно как узнать размер рисунка в пикселях и т.д.
Я набросал вот такой код
Код:
$uploaddir = 'C:/Program Files/ALTdenwer/complex/www/web/img/avatares/';
if ($_FILES['avatare']['type']=="image/jpeg" or $_FILES['avatare']['type']=="image/gif")
{
    print "Формат указанного вами файла не подходит. Попробуйте ещё раз.";
    exit;
}
if($_FILES['avatare']['size'] > $MAX_FILE_SIZE)
{
    print "Размер указанного вами файла превышает макс.допустимый размер.";
    exit;
}
$pixel=getimagesize($_FILES['avatare']['tmp_name']);
$max_width='120';
$max_height='120';
$width='$pixel[0]';
$height='$pixel[1]';
if($width > $max_width && $height > $max_height)
{
  echo "Максимальные размеры рисунка составляют '$max_width'x'$max_height'";
  exit;
}
if (move_uploaded_file($_FILES['avatare']['tmp_name'], $uploaddir .
    $_FILES['avatare']['name'])) {
    $avatare=$_FILES['avatare']['name'];
} else {
    print "При загрузке изображения произошла ошибка. Обратитесь к администрации.";
    exit;

Но проверку файл не проходит. Я так понимаю проверку надо делать над $_FILES['name']['tmp_name']
92
03 февраля 2007 года
Тень Пса
2.2K / / 19.10.2006
Цитата: Mayc
Я так понимаю проверку надо делать над $_FILES['name']['tmp_name']



аха, и еще... не надо ВСЁ присваивать с ковычками....

 
Код:
$max_width = 120;
$max_height = 120;


$width = $pixel[0];
$height = $pixel[1];
так, для уверенности... а то строки знаете ли тоже сравнивать как целые числа.... не совсем я бы сказал гут... а мож это и предрассудки Сишника :D
15
03 февраля 2007 года
shaelf
2.7K / / 04.05.2005
РНР не типизированный язык.
 
Код:
<?php
$a = '2';
$b = '4';
echo $a * $b;
?>
92
03 февраля 2007 года
Тень Пса
2.2K / / 19.10.2006
Цитата: shaelf
РНР не типизированный язык.
 
Код:
<?php
$a = '2';
$b = '4';
echo $a * $b;
?>



это касательно моих ошибок (о возможности которых я уже предупредил)

но про проблему я был прав... так что вот....

про кавычки

опробуйте shaelf вот этот код... что вы видите???

 
Код:
<?

$pixel = array(120,130);

$width='$pixel[0]';
$height='$pixel[1]';

print $width." x ".$height;

?>
лично я вижу: $pixel[0] x $pixel[1]; на выходе и никаких чисел...

2АВТОР: ибо это тупое и самое прямое присвоение переменным строк, если нужно положить переменные (их значение) в строку, то нужно либо использовать конкатенацию строк, либо делать так

 
Код:
<?

$width='{$pixel[0]}';
$height='{$pixel[1]}';

?>
но в данном случае это не более чем глупо.. и работать не будет... ибо кавычки одинарные.... а сдается мне что в одинарных кавычках представляется все КАК ЕСТЬ, даже имена переменных (по крайней мере в перле так.... я не уверен что в PHP так же, поэтому если и здесь я ошибаюсь.. поправьте меня)



PS и решение проблемы: КОВЫЧКИ НАДО УБРАТЬ! :D

 
Код:
<?
 
$width = $pixel[0];
 $height = $pixel[1];
 
?>


PPS 2АВТОР: А вообще..... print и print_r тебе в руки )))) ну такую уж мелочь мог бы и проверить ;)
256
04 февраля 2007 года
foxweb
1.0K / / 27.07.2005
ржунимагу! первый класс вторая четверть ;)))))))

книжки в руки, господа! и "монстры" этого форума в том числе )
15
04 февраля 2007 года
shaelf
2.7K / / 04.05.2005
Мдя.. Ввера был тяжкий день... Сказать толком не смог... В общем я хотел сказать про динамическую типизацию интерпретатора, а выдал ХЗ что. Бывает)
PS Рад, что повеселил)
92
04 февраля 2007 года
Тень Пса
2.2K / / 19.10.2006
ничего ) я тож )))) :D
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог