У меня есть проблема, которая сводит меня с ума.Я создаю систему CMS, которая включает загрузку изображений с помощью плагина jquery ajax (uploadify) и изменение их размера на стороне сервера в соответствии с заданными пользователем размерами с использованием класса изменения размера изображения codeigntier.
Проблема заключается в том, что иногдаизменение размера изображения на одном из изображений (до 5 изображений, отправляемых за один раз), что приводило к превышению времени ожидания функции поста ajax.Из журналов ошибок CI говорится, что один из файлов поврежден.Не совсем уверен, как или почему это происходит, но в любом случае - я пытаюсь настроить систему ошибок, при которой, если это происходит, через json отправляется ошибка, которая будет предупреждена с помощью javascript, просто попросив их повторить попытку или еще что-нибудь.Но вот проблема -
В моей модели у меня есть:
foreach($size_image as $si){
if(!$this->resize_image($si['dimensions'],$si['fileName'],$si['oldPath'],$si['newPath'])){
return false; // I can confirm this does indeed return false whenever the image resize problem occurs...
}
}
В моем контроллере у меня есть:
function save_page(){
if($this->admin_model->save_page()){
$return_array['error'] = '';
}else{
$return_array['error'] = 'Sorry, there was a problem processing one of the images.';
}
$return_array['success'] = true;
echo json_encode($return_array);
exit();
}
Всякий раз, когда работает изменение размера (и функция save_pageвозвращает true) эхо-кодирование json работает нормально и принимается на другом конце и обрабатывается JavaScript.Но НЕ когда возвращается false !!
Просто чтобы доказать, что я не глупый, я могу заменить if ($ this-> admin_model-> save_page ()) { на if (! $ this-> admin_model-> save_page ()) { (что означает, что я теперь получаю сообщение об ошибке при изменении размера DOES ) - и да, я получаю сообщение об ошибке наscreen!
Поэтому, когда возникает такая проблема с изменением размера, по какой-то причине вышеуказанная функция просто отказывается отображать json, даже если она определенно подходит к этой части скрипта.
И для абсолютногоясность, я могу сделать это:
function save_page(){
if($this->admin_model->save_page()){
$return_array['error'] = '';
}else{
// $return_array['error'] = 'Sorry, there was a problem processing one of the images.';
$this->load->helper('file');
write_file('testOutput.txt','ERROR!!!!'); // <-- and yep, I get 'ERROR' written to this file.
exit();
}
$return_array['success'] = true;
echo json_encode($return_array); // <-- ...so why the hell doesn't this work then?
exit();
}
Почему?
Любая помощь или предложения очень приветствуются, большое спасибо заранее.