Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Как правильно организовать загрузку изображения в профиле?

Как правильно организовать загрузку изображения в профиле?


     19.02.2019    Все вопросы » Общие вопросы по PHP    616

вопрос

		if ( $_POST['map'] ) {

		$map = $_FILES['map']['tmp_name'];
		$map_name = $_FILES['map']['name'];
		$map_size = $_FILES['map']['size'];
		$map_name_arr = explode( ".", $map_name );
		$type = totranslit( end( $map_name_arr ) );
		
		if( $map_name != "" ) $map_name = totranslit( stripslashes( $map_name_arr[0] ) ) . "." . $type;

		if( strpos ( $map_name, "php" ) !== false ) die("Hacking attempt!");
	
		if( is_uploaded_file( $map ) and ! $stop ) {
			
			if( intval( $user_group[$member_id['user_group']]['max_foto'] ) > 0 ) {
				
				if( !$config['max_up_size'] OR $map_size < ($config['max_up_size'] * 1024) ) {
					
					$allowed_extensions = array ("jpg", "png", "gif" );
					
					if( in_array( $type, $allowed_extensions ) AND $map_name ) {
						
						include_once (DLEPlugins::Check(ENGINE_DIR . '/classes/thumb.class.php'));
						
						$res = @move_uploaded_file( $map, ROOT_DIR . "/uploads/map/" . $row['user_id'] . "." . $type );
						
						if( $res ) {
							
							@chmod( ROOT_DIR . "/uploads/map/" . $row['user_id'] . "." . $type, 0666 );
							$thumb = new thumbnail( ROOT_DIR . "/uploads/map/" . $row['user_id'] . "." . $type );
							$thumb->jpeg_quality( $config['jpeg_quality'] );
							$thumb->save( ROOT_DIR . "/uploads/map/map_" . $row['user_id'] . "." . $type );
							
							@chmod( ROOT_DIR . "/uploads/map/map_" . $row['user_id'] . "." . $type, 0666 );
							
							if (strpos($config['http_home_url'], "//") === 0) $map_url = $config['http_home_url'];
							elseif (strpos($config['http_home_url'], "/") === 0) $map_url = "//".$_SERVER['HTTP_HOST'].$config['http_home_url'];
							else $map_url = $config['http_home_url'];
							
							$map_url = str_ireplace("https:", "", $map_url);
							$map_url = str_ireplace("http:", "", $map_url);
							
							$map_name = $db->safesql( $map_url . "uploads/map/" ."map_" . $row['user_id'] . "." . $type );
							
							$db->query( "UPDATE " . USERPREFIX . "_users SET map='{$map_name}' WHERE user_id = '{$id}'" );
						
						} else
							$stop .= $lang['news_err_14'];
					} else
						$stop .= $lang['news_err_15'];
				} else
					$stop .= str_replace("{size}", $config['map_size'], $lang['news_err_16']);
			} else
				$stop .= $lang['news_err_32'];
			
			@unlink( ROOT_DIR . "/uploads/map/" . $row['user_id'] . "." . $type );
		}
      }    



Добрый день. Взяла код загрузки аватарки и переделала для загрузки изображения, вижу что-то загружается, но самого файла нет в папке, как и ссылки в базе. Кстати в базе было создано новое поле map, а также в папке uploads/map и выставлены права на запись, в шаблоне создано все по аналогии с input полем "image" только "map". Вроде бы все проверки, которые были у аватарки убрала. Подскажите в чем проблема в коде?!

Ответа пока нет


3 комментария

dj-avtosh
PHP-developer

dj-avtosh - 19 февраля 2019 15:47 -

На самом деле нужно делать дамп на каждой строчке и смотреть где отваливается - так с ходу не сказать, без практики.

https://elkhan.ru
По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

Marish_a
Юзер

Marish_a - 22 февраля 2019 06:38 -

dj-avtosh,
Спасибо, вам Эльхан. Был взят код аватарки и поэтому, что да как работает в принципе понимаю, но может быть не все. Так как я только начинаю изучать php. Поэтому я нашла код, который отвечает за вывод аватарки и с ним провожу эксперименты. ))

dj-avtosh
PHP-developer

dj-avtosh - 22 февраля 2019 12:21 -

Здравствуйте. Есть ли какие-то плоды?

https://elkhan.ru
По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх