Показать сообщение отдельно
  #5 (permalink)  
Старый 13.01.2017, 16:06
Профессор
Отправить личное сообщение для smart-create Посмотреть профиль Найти все сообщения от smart-create
 
Регистрация: 25.10.2016
Сообщений: 157

Сообщение от laimas Посмотреть сообщение
Даже так? Ну-ну, а ничего, что информацию о файлах загруженных нужно искать в массиве $_FILES, чего в вашем коде нет?
Ищите там где указано, загрузкой у вас занимается класс указанный. Вот и разбираться начинайте с него.
Я понимаю о чем вы говорите, но у Codignaiter есть свой подход к загрузке фалов, весь замес происходит тут:
function add_comments() {
	$config['upload_path'] = './photo/'; // задаем путь для загрузки
	$config['allowed_types'] = 'gif|jpg|png|jpeg'; // задаем допустимые типы загружаемых файлов
	$config['max_size']	= '3000'; // задаем максимальный допустимый размер загруженного файла
	$config['encrypt_name']	= TRUE; // переименовываем загружаемый файл в набор символов типа: "a86e4526e164492ebe858ed9a87522d8.png"
	$config['remove_spaces'] = TRUE; // удаляем пробелы в названии файла и меняем их на "_"
	$this->load->library('upload', $config); // загружаем массив со всеми указанными параметрами в библиотеку 'upload'
	$this->upload->do_upload(); // вызываем функцию из библиотеки 'upload' которая и загружает изображения со всеми указанными выше параметрами
			
	$image_data = $this->upload->data(); // получаем имя загружаемого изображения
			
	$comments['name']  = $_POST['comments_name'];
	$comments['city'] = $_POST['comments_city'];
	$comments['email'] = $_POST['comments_email'];
	$comments['phone'] = $_POST['comments_phone'];
	$comments['comment'] = $_POST['comments_message'];
	$comments['img'] = $image_data['file_name'];
			
	$comment_id = $this->main_model->new_comments($comments);
			
	$comment = array();
	if ($comment_id)
	{
		$comment = $this->main_model->get_comments_limit(0,1);
	}
			
	echo json_encode($comment);
}


И что самое главное, он 100% работает. Это можно увидеть если не навешивать на форму мой jq-обработчик:
$("form#contact-form").submit(function(e){
	e.preventDefault();
	var f = this,
		   data = $(f.elements).slice(0, -1),
        s = $(f.elements).last(),
        e = s.end().slice(0, -2).removeClass('input-error').filter(function() {
            return !$.trim(this.value)
        });
    if(e.length) e.addClass('input-error');
	else {
		s.prop('disabled', 1);
        s.end().not(s);
		$.ajax({
			url: f.action,
			type: 'POST',
			data: data,
			dataType: 'json',
			success: function(data) {
				thx('open');
				create_comments(data);
				f.reset();
				s.prop('disabled', 0);
				e.removeClass('input-error');
				$('body').animate(
					{
						scrollTop:$('.row.comment:first').offset().top - $('.navbar').outerHeight()
					},
					500
				);
			}
		});
	}
});


Вы можете сами в этом убедиться перейдя по ссылке http://villabavaria.net/comments

Самый последний комментарий там, оставлен мной, только что, можно увидеть что картинка там есть. Если есть желание оставьте совой отзыв и убедитесь.

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