Сообщение от 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
Самый последний комментарий там, оставлен мной, только что, можно увидеть что картинка там есть. Если есть желание оставьте совой отзыв и убедитесь.
Одним словом все работает как нужно, до тех пор пока я не навешиваю обработчик с аяксом на форму. Если навесить его, то картинка перестает загружаться