#1 2011.08.17 02:33

POFIGISST
Участник
Зарегистрирован: 2011.03.20
Сообщений: 1531
Карма: 6
Профиль

Загрузка картинки в папку)

скажите плиз,как можно сделать загрузку картинки в определенную папку,при этом чтоб её размеры проверялись,и при выгрузке чтоб путь к ней прописывался в базе,например загрузил картинку,она автоматом попадает в папку сайт.ру/картинки/ ,и при этом в поле базы заноситься имя картинки с форматом,примерно так olololo.gif ,и потом уже на страницу выводит сайт.ру/картинки/название из базы ))и вообще можно ли такое сделать?

Неактивен

#2 2011.08.17 02:38

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Загрузка картинки в папку)

http://php.su/phphttp/?uploads
http://php.su/articles/?cat=examples&page=017

Отредактировано tipsun (2011.08.17 02:41)

Неактивен

#3 2011.08.17 03:33

POFIGISST
Участник
Зарегистрирован: 2011.03.20
Сообщений: 1531
Карма: 6
Профиль

Re: Загрузка картинки в папку)

tipsun спасиб))с загрузкой файла разобрался,теперь не знаю как сделать изменение имени файла,на id того человека который закинул этот файл(((

Неактивен

#4 2011.08.17 06:07

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Загрузка картинки в папку)

Вот простенький код накатал.

Код:

1
span style="color: #0000BB"><?php$url = 'http://the-best-xxx.ru/img/136998.gif';$dir = './img';$name = basename($url);$patch = $dir . '/' . $name;if (@copy($url, $patch)) { $info = @getimagesize($patch); if (!is_array($info)) { if (file_exists($patch)) { @unlink($patch); } exit('Error: Это не картинка'); }} else { exit('Error: Не возможно загрузить');}echo 'name: ' . $name . '<br />' .'width: ' . $info[0] . '<br />' .'height: ' . $info[1] . '<br />' .'size: ' . filesize($patch) . ' bit<br />';?>

Отредактировано TLENS (2011.08.17 06:13)

Неактивен

#5 2011.08.17 11:12

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Загрузка картинки в папку)

$info еще хорошо бы проверить на то, что это именно png, gif или jpeg. а так туда, например, и swf попадет.

Неактивен

#6 2011.08.17 16:27

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Загрузка картинки в папку)

Gemorroj
Только бы страница 404 не попадала ну и прочие.
А в общем в кода много еще недостатков например проверки на существование и добавление md5 в имя.
спс буду знать на счет swf

Отредактировано TLENS (2011.08.17 16:30)

Неактивен

#7 2011.08.17 16:35

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Загрузка картинки в папку)

http://php.net/getimagesize

1 = GIF, 2 = JPG, 3 = PNG, 4 = SWF, 5 = PSD, 6 = BMP, 7 = TIFF(orden de bytes intel), 8 = TIFF(orden de bytes motorola), 9 = JPC, 10 = JP2, 11 = JPX, 12 = JB2, 13 = SWC, 14 = IFF, 15 = WBMP, 16 = XBM.

Неактивен

#8 2011.08.17 16:38

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Загрузка картинки в папку)

Ого не знал

Отредактировано TLENS (2011.08.17 16:38)

Неактивен

#9 2011.08.17 18:04

POFIGISST
Участник
Зарегистрирован: 2011.03.20
Сообщений: 1531
Карма: 6
Профиль

Re: Загрузка картинки в папку)

Код:

1
span style="color: #0000BB"><?php$allowed_filetypes = array('.jpg','.gif'); //разрешенный формат$max_filesize = 20480; //макс. размер в байтах$upload_path = './files3/'; //папка куда закидываються файлы$filename = $_FILES['userfile']['name'];$ext = substr($filename, strpos($filename,'.'), strlen($filename)-1); if(!in_array($ext,$allowed_filetypes))die('Данный тип файла не поддерживается.');if(filesize($_FILES['userfile']['tmp_name']) > $max_filesize)die('Фаил слишком большой.');if(!is_writable($upload_path))die('Невозможно загрузить фаил в папку. Установите права доступа - 777.');// Загружаем фаил в указанную папку.if(move_uploaded_file($_FILES['userfile']['tmp_name'],$upload_path . $filename)){echo 'Ваш фаил успешно загружен <a href="' . $upload_path . $filename . '">смотреть</a>'; }else{echo 'При загрузке возникли ошибки. Попробуйте ещё раз.';}?>

я вчера написал так загрузку,но мне сказали что с такой функцией нельзя добиться чего я хочу(((

Неактивен

#10 2011.08.17 18:08

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Загрузка картинки в папку)

Слушай скачай какой нить движок например wapmotor 18 там куча примеров на любую потребность. и загрузка на сайт то же там есть.
И не надо изобретать велосипед.

Неактивен

#11 2011.08.17 18:12

POFIGISST
Участник
Зарегистрирован: 2011.03.20
Сообщений: 1531
Карма: 6
Профиль

Re: Загрузка картинки в папку)

TLENS написал:

Слушай скачай какой нить движок например wapmotor 18 там куча примеров на любую потребность. и загрузка на сайт то же там есть.
И не надо изобретать велосипед.

ротор вчера уже скачал,смотрел как там авы идут,и нифига не разобрался((

Неактивен

#12 2011.08.17 18:34

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Загрузка картинки в папку)

POFIGISST, не оптимальный код. действительно. лучше посмотри примеры. только вот я бы не рекомендовал вап движки.

Неактивен

#13 2011.08.17 18:39

POFIGISST
Участник
Зарегистрирован: 2011.03.20
Сообщений: 1531
Карма: 6
Профиль

Re: Загрузка картинки в папку)

Gemorroj написал:

POFIGISST, не оптимальный код. действительно. лучше посмотри примеры. только вот я бы не рекомендовал вап движки.

а если фо взять за пример,например такой как тут http://sh.kraftmax.ru/ стоит,если не ошибаюсь то там твой мод фо))

Неактивен

#14 2011.08.17 18:41

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Загрузка картинки в папку)

POFIGISST, бери что хочешь. мой мод - не гарантия качества.

Неактивен

#15 2011.08.17 18:44

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Загрузка картинки в папку)

Так тебе надо именно с картинками?.
Если тебе надо просто пример загрузки картинок то бери пример. Главное что бы ты понял как скрипт работает

Неактивен

#16 2011.08.17 18:44

POFIGISST
Участник
Зарегистрирован: 2011.03.20
Сообщений: 1531
Карма: 6
Профиль

Re: Загрузка картинки в папку)

Gemorroj написал:

POFIGISST, бери что хочешь. мой мод - не гарантия качества.

ну так если твой мод,значить более менее знаешь какой там код,и если что,можно будет обращаться с вопросами))
Добавлено спустя   1 минуту  53 секунды:

TLENS написал:

Так тебе надо именно с картинками?.
Если тебе надо просто пример загрузки картинок то бери пример. Главное что бы ты понял как скрипт работает

да,мне пока нужны только картинки,я хочу сделать загрузку юзерами личных аватарокsmile)

Неактивен

#17 2011.08.17 18:47

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Загрузка картинки в папку)

Блин ну возьми пример загрузки аватарок.

Неактивен

#18 2011.08.17 18:48

POFIGISST
Участник
Зарегистрирован: 2011.03.20
Сообщений: 1531
Карма: 6
Профиль

Re: Загрузка картинки в папку)

TLENS написал:

Блин ну возьми пример загрузки аватарок.

ну я же грю что брал вчера в роторе копался,правда не разобрался,ща зц скачал один,возьму его за пример))

Неактивен

#19 2011.08.17 18:52

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Загрузка картинки в папку)

POFIGISST, нет, я их ковырял очень давно.

Неактивен

#20 2011.08.17 22:34

POFIGISST
Участник
Зарегистрирован: 2011.03.20
Сообщений: 1531
Карма: 6
Профиль

Re: Загрузка картинки в папку)

Оттопырил код с базой,специально под авы,только в коде какая то ошибка,я даже не могу сказать в какой строке она((((код выложу,подскажите пожалуйста строчку и примерную ошибку,только не исправляйте её,я сам хочу найти её((( вот сам код

Код:

1
lt;?require'config.php';aut();who_add(0,'enter');function passgen($k_simb=8, $types=3) {$password="";$small="abcdefghijklmnopqrstuvwxyz";$large="ABCDEFGHIJKLMNOPQRSTUVWXYZ";$numbers="1234567890";mt_srand((double)microtime()*1000000); for ($i=0; $i<$k_simb; $i++) { $type=mt_rand(1,min($types,3));switch ($type) {case 3:$password.=$large[mt_rand(0,25)];break;case 2:$password.=$small[mt_rand(0,25)];break;case 1:$password.=$numbers[mt_rand(0,9)];break;}}return $password;}$passgen=&passgen();if (mysql_result(mysql_query("SELECT COUNT(*) FROM `avatar` WHERE `kto` = '$user[id]' LIMIT 1",$db), 0)==0){echo 'У вас аватар еще не установлен';}else{$s = mysql_query ("Select * from `avatar` where `kto` = '$user[id]'");$izm = mysql_fetch_array ($s);echo '<img src="'.$izm['sil'].'" alt=""/><br/>';}if (isset($_FILES['loadfile']['tmp_name'])) {if (is_uploaded_file($_FILES['loadfile']['tmp_name'])) {$filename = che(strtolower($_FILES['loadfile']['name']));if (preg_match('|^[a-z0-9_\.\-]+$|i', $filename)) {$arrext = explode(',', 'jpg,jpeg,gif,png,bmp');$ext = strtolower(substr(strrchr($filename, '.'), 1));if (in_array($ext, $arrext) && $ext != 'php') {if (!preg_match('/\.(php|pl|cgi|phtml|htaccess)/i', $filename)) {if ($_FILES['loadfile']['size'] > 0 && $_FILES['loadfile']['size'] <= 50*1000) {$dir = 'avatar/';$put = $dir.$passgen.''.$filename;move_uploaded_file($_FILES['loadfile']['tmp_name'], $put);chmod($put, 0666);$photo_giz = getimagesize($put);if (!isset($photo_giz[0] ) && !isset($photo_giz[1])){$err='Ошибка! Файл не допустим!';echo 'Ошибка! Файл не допустим!';unlink($put);}}else{$err='Ошибка!';echo 'Ошибка! Максимальный размер загружаемого файла 50 кб';} }else{$err='Ошибка!';echo 'Ошибка! В названии файла присутствуют недопустимые расширения!';} }else{$err='Ошибка! ';echo 'Ошибка! Недопустимое расширение файла!';} }else{$err='Ошибка! В названии файла присутствуют недопустимые символы!';echo 'Ошибка! В названии файла присутствуют недопустимые символы!';} }if(!isset($err)){if (mysql_result(mysql_query("SELECT COUNT(*) FROM `avatar` WHERE `kto` = '$user[id]' LIMIT 1",$db), 0)==0){mysql_query("INSERT INTO `avatar` (kto,sil) values ('$user[id]','$put')");}else{mysql_query("UPDATE `avatar` SET `sil` = '$put' WHERE `kto` = '$user[id]' LIMIT 1");}}}echo '<form action="avatar.php" method="post" enctype="multipart/form-data">';echo 'Выберите файл для загрузки <br/>';echo 'при загрузке нового аватара, старый удаляется<br/>';echo '<input type="file" name="loadfile" /><br/>';echo '<input style="background-color: #3A88D7; color: #FFFFFF; border: 1px solid #3A88D7" type="submit" value="Загрузить" />';echo '</form>';echo gb.'<a href="'.H.'enter">Прихожая</a>'.div;foot();?>

но нифига не выводит,только белая страница(((
Добавлено спустя   1 минуту  26 секунд:
хотя валидатором проверяю,ошибок нету((

Неактивен

#21 2011.08.17 23:11

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Загрузка картинки в папку)

пиши всегда <?php, а не <?
mt_srand((double)microtime()*1000000);  - это убери вообще. это для php 4
$passgen=&passgen(); - амперсанд убери
синтаксических ошибок тут нет. они могут быть в подключаемых файлах.

Неактивен

#22 2011.08.17 23:20

POFIGISST
Участник
Зарегистрирован: 2011.03.20
Сообщений: 1531
Карма: 6
Профиль

Re: Загрузка картинки в папку)

Спасибо Паш,убрал ))
вот так получилось

Код:

1
span style="color: #0000BB"><?phprequire'config.php';aut();who_add(0,'enter');function passgen($k_simb=8, $types=3) {$password="";$small="abcdefghijklmnopqrstuvwxyz";$large="ABCDEFGHIJKLMNOPQRSTUVWXYZ";$numbers="1234567890";for ($i=0; $i<$k_simb; $i++) { $type=mt_rand(1,min($types,3));switch ($type) {case 3:$password.=$large[mt_rand(0,25)];break;case 2:$password.=$small[mt_rand(0,25)];break;case 1:$password.=$numbers[mt_rand(0,9)];break;}}return $password;}$passgen=passgen();if (mysql_result(mysql_query("SELECT COUNT(*) FROM `avatar` WHERE `kto` = '$user[id]' LIMIT 1",$db), 0)==0){echo 'У вас аватар еще не установлен';}else{$s = mysql_query ("Select * from `avatar` where `kto` = '$user[id]'");$izm = mysql_fetch_array ($s);echo '<img src="'.$izm['sil'].'" alt=""/><br/>';}if (isset($_FILES['loadfile']['tmp_name'])) {if (is_uploaded_file($_FILES['loadfile']['tmp_name'])) {$filename = che(strtolower($_FILES['loadfile']['name']));if (preg_match('|^[a-z0-9_\.\-]+$|i', $filename)) {$arrext = explode(',', 'jpg,jpeg,gif,png,bmp');$ext = strtolower(substr(strrchr($filename, '.'), 1));if (in_array($ext, $arrext) && $ext != 'php') {if (!preg_match('/\.(php|pl|cgi|phtml|htaccess)/i', $filename)) {if ($_FILES['loadfile']['size'] > 0 && $_FILES['loadfile']['size'] <= 50*1000) {$dir = 'avatar/';$put = $dir.$passgen.''.$filename;move_uploaded_file($_FILES['loadfile']['tmp_name'], $put);chmod($put, 0666);$photo_giz = getimagesize($put);if (!isset($photo_giz[0] ) && !isset($photo_giz[1])){$err='Ошибка! Файл не допустим!';echo 'Ошибка! Файл не допустим!';unlink($put);}}else{$err='Ошибка!';echo 'Ошибка! Максимальный размер загружаемого файла 50 кб';} }else{$err='Ошибка!';echo 'Ошибка! В названии файла присутствуют недопустимые расширения!';} }else{$err='Ошибка! ';echo 'Ошибка! Недопустимое расширение файла!';} }else{$err='Ошибка! В названии файла присутствуют недопустимые символы!';echo 'Ошибка! В названии файла присутствуют недопустимые символы!';} }if(!isset($err)){if (mysql_result(mysql_query("SELECT COUNT(*) FROM `avatar` WHERE `kto` = '$user[id]' LIMIT 1",$db), 0)==0){mysql_query("INSERT INTO `avatar` (kto,sil) values ('$user[id]','$put')");}else{mysql_query("UPDATE `avatar` SET `sil` = '$put' WHERE `kto` = '$user[id]' LIMIT 1");}}}echo '<form action="avatar.php" method="post" enctype="multipart/form-data">';echo 'Выберите файл для загрузки <br/>';echo 'при загрузке нового аватара, старый удаляется<br/>';echo '<input type="file" name="loadfile" /><br/>';echo '<input style="background-color: #3A88D7; color: #FFFFFF; border: 1px solid #3A88D7" type="submit" value="Загрузить" />';echo '</form>';echo gb.'<a href="'.H.'enter">Прихожая</a>'.div;foot();?>

Неактивен

#23 2011.08.17 23:30

POFIGISST
Участник
Зарегистрирован: 2011.03.20
Сообщений: 1531
Карма: 6
Профиль

Re: Загрузка картинки в папку)

всее,теперь работает,вот код рабочий))

Код:

1
span style="color: #0000BB"><?phprequire'config.php';head();aut();who_add(0,'enter');$passgen=rand(1,2000);if (mysql_result(mysql_query("SELECT COUNT(*) FROM `avatar` WHERE `kto` = '$user[id]' LIMIT 1"), 0)==0){echo 'У вас аватар еще не установлен';}else{$s = mysql_query ("Select * from `avatar` where `kto` = '$user[id]'");$izm = mysql_fetch_array ($s);echo 'Ваш текущий аватар<br/>';echo '<img src="'.$izm['sil'].'" alt=""/><br/>';}if (isset($_FILES['loadfile']['tmp_name'])) {if (is_uploaded_file($_FILES['loadfile']['tmp_name'])) {$filename = check(strtolower($_FILES['loadfile']['name']));if (preg_match('|^[a-z0-9_\.\-]+$|i', $filename)) {$arrext = explode(',', 'jpg,jpeg,gif,png,bmp');$ext = strtolower(substr(strrchr($filename, '.'), 1));if (in_array($ext, $arrext) && $ext != 'php') {if (!preg_match('/\.(php|pl|cgi|phtml|htaccess)/i', $filename)) {if ($_FILES['loadfile']['size'] > 0 && $_FILES['loadfile']['size'] <= 100*1000) {$dir = 'avatar/';$put = $dir.$passgen.''.$filename;move_uploaded_file($_FILES['loadfile']['tmp_name'], $put);chmod($put, 0666);$photo_giz = getimagesize($put);if (!isset($photo_giz[0] ) && !isset($photo_giz[1])){$err='Ошибка! Файл не допустим!';echo'Ошибка! Файл не допустим!<br/>';unlink($put);}if(!isset($err)){if (mysql_result(mysql_query("SELECT COUNT(*) FROM `avatar` WHERE `kto` = '$user[id]' LIMIT 1"), 0)==0){mysql_query("INSERT INTO `avatar` (kto,sil) values ('$user[id]','$put')");header("location: avatar.php");}else{$s = mysql_query ("Select * from `avatar` where `kto` = '$user[id]'");$izm = mysql_fetch_array ($s);unlink($izm['sil']);mysql_query("UPDATE `avatar` SET `sil` = '$put' WHERE `kto` = '$user[id]' LIMIT 1");header("location: avatar.php");}}}else{$err='Ошибка! Максимальный размер загружаемого файла 100 кб';echo'Ошибка! Максимальный размер загружаемого файла 100 кб<br/>';} }else{$err='Ошибка! В названии файла присутствуют недопустимые расширения!';echo'Ошибка! В названии файла присутствуют недопустимые расширения!<br/>';} }else{$err='Ошибка! Недопустимое расширение файла!';echo'Ошибка! Недопустимое расширение файла!<br/>';} }else{$err='Ошибка! В названии файла присутствуют недопустимые символы!';echo'Ошибка! В названии файла присутствуют недопустимые символы!<br/>';} }else{$err='Вы не выбрали файл!';echo 'Вы не выбрали файл!<br/>';}}echo "<form method='post' enctype='multipart/form-data' action='avatar.php'>\n";echo "<input type='file' name='loadfile' accept='image/*,image/gif,image/png,image/jpeg' /><br />\n";echo "<input value='ЖмакаЙ' type='submit' />\n";echo "</form>\n";echo gb.'<a href="'.H.'enter">Прихожая</a>'.div;foot();?>

правда где ошибка была,я незнаю((

Неактивен

#24 2011.08.18 21:17

POFIGISST
Участник
Зарегистрирован: 2011.03.20
Сообщений: 1531
Карма: 6
Профиль

Re: Загрузка картинки в папку)

Запутался я в базе((

хочу сделать чтоб можно было удалять личную аву,код мне подсказали такой

Код:

1
2
3
4
5
6
7
8
9
10
11
echo '<a href="?do=empty&amp;id=$user[id]">Удалить авку</a>';
if($_GET['do']=='empty')
{
$query=mysql_query("delete from `avatar` where `sil`='".$user[id]."'");
if($query)
{
echo 'Аватарка is удалена';
}
else
{
echo mysql_error();

только со значениями в базе не разберусь(( нужно чтоб ава удалялась именно у того чела,который кликнул по ссылке,на как это делать х\з((

Неактивен

#25 2011.08.18 21:20

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Загрузка картинки в папку)

POFIGISST, не понимаю проблемы. у тебя SQL запрос составить не получается или что? где тут нужны знания программирования?

Неактивен

#26 2011.08.18 21:23

POFIGISST
Участник
Зарегистрирован: 2011.03.20
Сообщений: 1531
Карма: 6
Профиль

Re: Загрузка картинки в папку)

Gemorroj написал:

POFIGISST, не понимаю проблемы. у тебя SQL запрос составить не получается или что? где тут нужны знания программирования?

ид человека находиться в другой табле ,а авы в другой табле,и вот незнаю как сделать запрос,чтоб аву удаляло только у того человека,который кликнул по ссылке,а не чтоб у всех юзеров((
Добавлено спустя   1 минуту  46 секунд:
если бы авы и ид были в одной таблице,то так бы смог,а из разных таблиц х.з как делать))

Неактивен

#27 2011.08.18 21:32

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Загрузка картинки в папку)

Покажи структуру

Неактивен

#28 2011.08.18 21:37

POFIGISST
Участник
Зарегистрирован: 2011.03.20
Сообщений: 1531
Карма: 6
Профиль

Re: Загрузка картинки в папку)

Вот скрин обеих таблиц(


Вложения

Неактивен

#29 2011.08.18 22:10

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Загрузка картинки в папку)

что такое kto?

Неактивен

#30 2011.08.18 22:10

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Загрузка картинки в папку)

Поидее связка с юзером
Добавлено спустя   3 минуты  59 секунд:

Код:

1
2
3
4
5
6
7
8
9
$id = 1; // ид юзера
$q = mysql_query("SELECT * FROM `avatar` WHERE `kto` = '$id'");
if (mysql_num_rows($q)) {
$query=mysql_query("DELETE FROM `avatar` WHERE `kto`='$id'");
$row = mysql_fetch_array($q);
@unlink($patch . '/' . $row['sil']);
} else {
echo 'У вас нет аватара для удаления';
}

Отредактировано TLENS (2011.08.18 22:17)

Неактивен

#31 2011.08.18 22:24

POFIGISST
Участник
Зарегистрирован: 2011.03.20
Сообщений: 1531
Карма: 6
Профиль

Re: Загрузка картинки в папку)

kto,это отвечает за того кто закинул аву,спасибо всем,очень помогли,все работает))

и еще вопрос по коду который я всунул на вывод ав

Код:

1
2
3
4
5
6
$sit = $_SERVER['HTTP_HOST'];
 
 
if($izm['sil']!='')echo '<img src="'.$izm['sil'].'" alt="ava"/><br/>';
}
if($izm['sil']=='')echo '<img src="http://'.$sit.'/'.$inf['myavatar'].'"alt="ava"/><br/>';

все выводит нормально,просто может как то более лучше это можно сделать,подскажите пожалуйста))
Добавлено спустя   1 минуту  29 секунд:
переменная $sit задается в начале кода))

Отредактировано POFIGISST (2011.08.19 23:20)

Неактивен

#32 2011.08.19 15:01

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Загрузка картинки в папку)

Что это такое?
Пиши правильно $user['myavatar']

Неактивен

#33 2011.08.19 23:18

POFIGISST
Участник
Зарегистрирован: 2011.03.20
Сообщений: 1531
Карма: 6
Профиль

Re: Загрузка картинки в папку)

Это такой код у меня,то есть идет проверка  if($izm['sil']!=''), если в поле sil занесен адрес авы,ну то есть там не пусто != то выведет аву которая там закинута,а если же личная ава не закинута и поле sil равно нулю,пустое,то выведет аву которая была выбрана из списка,но это говнокод,так как я не подумал что у юзера вообще не какой авы может не стоять,то есть поля будут пустые,и тогда система пытается вывести картинку if($izm['sil']=='') так как тут пусто(( сейчас буду делать проверку,чтоб если оба поля пусты были,то чтоб ничего не выводило)))

Неактивен

#34 2011.08.19 23:34

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Загрузка картинки в папку)

Нормально/Говно?

Типа импортирует файлы
----
Ой не в ту тему написал.
Ну хотя это к загрузке картинок частично относится.

Код:

1
span style="color: #0000BB"><?php//CONFIG//define('PATH', 'uploads/');define('SIZE', 100); // 100 kBdefine('IMAGE', 200); // 200 px$allow = array('jpg', 'gif', 'png'); // *.type//CONFIG END////FUNCTIONS//function mb_strrTok($text=0, $symbol=0, $char='UTF-8') { if(!trim($text) or !trim($symbol)) return false; return mb_subStr($text, mb_strrPos($text, $symbol, 0, $char)+1, E_ALL, $char); }function sizeCheck($url) { $size = get_headers($url, 1); if(SIZE*1024 < $size['Content-Length']) return false; return $size['Content-Length']/1024; }function typeCheck($url) { GLOBAL $allow; $ext = mb_strrTok($url, '.'); if(!in_array($ext, $allow)) return false; return $ext; }function imgCheck($url) { if(false !== ($image = getImageSize($url)) and 4 > $image[2]) if(IMAGE < $image[0] or IMAGE < $image[1]) return false; return $image[0].'x'.$image[1]; }function getInfo($url) { //$url = 'http://' == subStr($url, 0, 7) ? $url : 'http://'.$url; $name = basename($url); if(/*false !== ($fsize = sizeCheck($url)) and */ false !== ($ftype = typeCheck($url)) and false !== (false !== strpos('jpg|png|gif', $ftype) ? $fres = imgCheck($url) : true)) { if(copy($url, PATH.$name)) return $name.' |'.$fsize.'/'.$ftype.'/'.$fres.'| ok<br/>'.PHP_EOL; else return $name.' | not copied<br/>'.PHP_EOL; } return $name.' | no<br/>'.PHP_EOL; }//FUNCTIONS END////GET DATA//$import = isset($_POST['import']) ? trim($_POST['import']) : null;foreach(preg_split('/\n/', $import) as $link) { $link = trim($link); if($link) { $log .= getInfo($link); } }//GET DATA END//exit('<html><body>'.$log.'</body></html>');?>

Отредактировано tipsun (2011.08.19 23:44)

Неактивен

#35 2011.08.19 23:38

POFIGISST
Участник
Зарегистрирован: 2011.03.20
Сообщений: 1531
Карма: 6
Профиль

Re: Загрузка картинки в папку)

tipsun эт код для чего?)))

Неактивен

#36 2011.08.19 23:40

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Загрузка картинки в папку)

Ой не в ту тему написал.
Ну хотя это к загрузке картинок частично относится.
POFIGISST, извиняюсь.
----
Файлы импортирует.
Перез [enter] адреса файлов вводишь и все должно скопироваться.
- Надо только чуть настроить: папку, допустимый размер, допустимое разрешение для картинки.

Отредактировано tipsun (2011.08.19 23:43)

Неактивен

#37 2011.08.19 23:42

POFIGISST
Участник
Зарегистрирован: 2011.03.20
Сообщений: 1531
Карма: 6
Профиль

Re: Загрузка картинки в папку)

tipsun написал:

Ой не в ту тему написал.
Ну хотя это к загрузке картинок частично относится.
POFIGISST, извиняюсь.
----
Файлы импортирует.
Перез [enter] адреса файлов вводишь и все должно скопироваться.

та ничего,у мя тоже бывает с темами такое Гг )))

Неактивен

#38 2011.08.19 23:43

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Загрузка картинки в папку)

tipsun, оформи в класс, добавь документацию в phpdoc стиле.

Неактивен

#39 2011.08.19 23:46

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Загрузка картинки в папку)

Gemorroj, спс что посмотрел!
Бля с классами у меня беда, надо учить.
Добавлено спустя   4 минуты :
Думаю не будет лишнем.

Код:

1
span style="color: #0000BB"><?php if(!empty($import)) //foreach... ?>

Неактивен

#40 2011.08.20 00:03

POFIGISST
Участник
Зарегистрирован: 2011.03.20
Сообщений: 1531
Карма: 6
Профиль

Re: Загрузка картинки в папку)

tipsun Сделай проверку картинки по размеру,чтоб не могли залить шелл или другую гадость с измененным форматом))

Неактивен

#41 2011.08.20 01:23

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Загрузка картинки в папку)

Разрешение и так проверяется, и вес проверяется. Для теста на локалке закомментил проверку на вес и http:// убрал.
- - - -
Насчет шелл, а разве может быть такое?
Ну можно сделать чтоб проверка была на картинку, точнее на её разрешение, чтоб было не меньше 1x1. Иначе типа не картинка.
- - - -
Я еще хотел сделать множественный upload, но скорее всего не буду делать, по 1 файлу тоже не плохо smile
Думал этим же получится сделать, но лучше отдельно, там поменьше кода надо, все и так определяется.

Отредактировано tipsun (2011.08.20 01:28)

Неактивен

#42 2011.08.20 03:14

POFIGISST
Участник
Зарегистрирован: 2011.03.20
Сообщений: 1531
Карма: 6
Профиль

Re: Загрузка картинки в папку)

ну шелл это файл пхп,но с разными форматами незнаю,если закинуть например шелл с форматом gif ,тот как его потом на хосте переименовать в пхп,но такая защита есть(по пикселям проверяют) значить наверное и с шеллом можно замутить такую фигню,не просто так же защиту придумали)))

Неактивен

#43 2011.08.20 04:16

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Загрузка картинки в папку)

Ну надо будет поискать инфу тогда.
Добавлено спустя   8 минут  58 секунд:
include($file) - вот действительно шелл, который кодеры сами создают. А загрузить не получится все равно, надо чтоб у файла было расширение *.php которое врядли пройдет, т.к. функция которая выводит расширение операется на первую точку справа. Все что до нее (справа) будет проверяться как формат файла. Если то, что содержит "до" не содержит массив, то файл загружен не будет.

Отредактировано tipsun (2011.08.20 04:26)

Неактивен

#44 2011.08.20 04:26

POFIGISST
Участник
Зарегистрирован: 2011.03.20
Сообщений: 1531
Карма: 6
Профиль

Re: Загрузка картинки в папку)

это как то так выглядит))

Код:

1
2
3
4
5
6
7
$photo_giz = getimagesize($put);
if (!isset($photo_giz[0] ) && !isset($photo_giz[1])){
$err='Ошибка! Файл не допустим!';
echo'Ошибка! Файл не допустим!
';
unlink($put);
}

З.Ы. в аську зайди если можешь))

Отредактировано POFIGISST (2011.08.20 04:28)

Неактивен

#45 2011.08.20 04:36

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Загрузка картинки в папку)

Тут ведь и тип проверяется.
Фиг знает, ща добавлю "если пусто"="ошибка".

Код:

1
span style="color: #0000BB"><?phpfunction imgCheck($url) { //тип if(false !== ($image = getImageSize($url)) and 4 > $image[2] and IMAGE > $image[0] and IMAGE > $image[1]) return $image[0].'x'.$image[1]; else return false; }?>

Отредактировано tipsun (2011.08.20 04:37)

Неактивен

#46 2011.08.20 08:58

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Загрузка картинки в папку)

POFIGISST, проверка размера - это не защита от шеллов.

Неактивен

#47 2011.08.29 06:20

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Загрузка картинки в папку)

Можно:
- лог оставлять на потом.
- сделать, для удобства, указание строки разрешенных типов 'mp3,3gp,zip'
- сделать готовый вариант разрешенных типов или принимать указанные.
- сделать $load->run('file_list'); а так принимать $_POST[$var];

Код:

1
span style="color: #0000BB"><?php//....................path.....size..resol.......types.//$load = new import('loads/', 2024, 800, array('3gp', 'mp3', 'jpg', 'gif', 'png'));//echo $load->run($_POST['file_list']);class import { public $_path, $_size, $_image, $_allow; function __construct($path, $size, $image, $allow) { $this->_path = isset($path) ? $path : 0; // path $this->_size = isset($size) ? $size : 0; // kB $this->_image = isset($image) ? $image : 0; // [width]x[height] $this->_allow = is_array($allow) ? $allow : array(); // *.type } function mb_strrTok($text=0, $symbol=0, $char='UTF-8') { if (!trim($text) or !trim($symbol)) return false; return mb_subStr($text, 1+ mb_strrPos($text, $symbol, 0, $char), E_ALL, $char); } function typeCheck($url) { $ext = mb_strrTok($url, '.'); if (!in_array($ext, $this->_allow)) return false; return $ext; } function sizeCheck($url) { $size = get_headers($url, 1); $size = $size['Content-Length']/1024; if (empty($size) or $this->_size < $size) return false; return $size; } function imgCheck($url) { if (false !== ($image = getImageSize($url)) and 4 > $image[2] and 0 < $image[0] and 0 < $image[1] and $this->_image > $image[0] and $this->_image > $image[1]) return $image[0].'x'.$image[1]; return false; } function import($url) { $url = 'http://' == subStr($url, 0, 7) ? $url : 'http://'.$url; $name = baseName($url); if (false !== ($ftype = typeCheck($url)) and false !== ($fsize = sizeCheck($url)) and false !== ($fres = imgCheck($url))) { if (copy($url, $this->_path.$name)) return 'Copied: '.$name.' ('.$fsize.'/'.$ftype.'/'.$fres.')'.PHP_EOL; return 'Error : '.$name.PHP_EOL; } return 'Missed: '.$name.PHP_EOL; } function run($list) { $log = null; $import = isset($list) ? trim($list) : null; if (!empty($import)) { foreach (preg_split('/\n/', $import) as $link) { $link = trim($link); if ($link) { $log .= import($link); } } } else return 'Empty list'; return nl2br($log); } }?>

Отредактировано tipsun (2011.08.29 06:48)

Неактивен

#48 2011.08.29 15:26

POFIGISST
Участник
Зарегистрирован: 2011.03.20
Сообщений: 1531
Карма: 6
Профиль

Re: Загрузка картинки в папку)

Gemorroj написал:

POFIGISST, проверка размера - это не защита от шеллов.

я думал что от шеллов,так как у них нету пикселей(( а от чего эта защита?))

Неактивен

#49 2011.09.01 11:36

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Загрузка картинки в папку)

POFIGISST, как это нет? getimagesize возвращает на мне известных шеллах 16к пикселей.

Неактивен

Дополнительно

forum.wapinet.ru

PunBB Mod v0.6.2
0.037 s