Я работаю над приложением Codeigniter, которое использует JCrop для обрезки изображения профиля пользователя.
После загрузки изображения я использую стандартный метод для запуска Jcrop и отправки координат через форму.
<script type="text/javascript">
$(function() {
$('#cropbox').Jcrop({
onSelect: updateCoords,
aspectRatio: 1,
setSelect: [ 50, 50, 150, 150 ],
bgColor: '#fff',
bgOpacity: .2
});
});
function updateCoords(c)
{
$('#x').val(c.x);
$('#y').val(c.y);
$('#w').val(c.w);
$('#h').val(c.h);
};
</script>
// some code here...
<?php echo form_open('/profile/crop_picture', array('id' => 'crop_picture_form')); ?>
<input type="hidden" name="x" id="x" />
<input type="hidden" name="y" id="y" />
<input type="hidden" name="w" id="w" />
<input type="hidden" name="h" id="h" />
<br />
<?php echo form_close(); ?>
Все это прекрасно работает на Safari и FF 4.0.Пользователь выбирает область для обрезки, передает и страница обновляется с обрезанным изображением.
В Chrome и IE8, когда пользователь отправляет сообщение, страница обновляется, но изображение не обрезано.Кикер -> если в браузере нажать обновить, , то изображение обрезается .
Нет необходимости говорить, что это очень странно.У кого-нибудь есть предложения, с чего начать отладку этой проблемы - или вы видели, как это происходило / описано ранее?
Спасибо за помощь.
РЕДАКТИРОВАТЬ : Все еще не решено, нодальнейшее тестирование показывает, что это может быть проблема с кешем в Cr и IE8.Похоже, что Chrome сохраняет исходное загруженное изображение и отображает его, даже если размеры кадрирования были отправлены, обработаны и сохранены с помощью codeigniter на сервере.В конце моего контроллера CI для обрезки я поместил
redirect('/profile/picture', 'refresh');
, который не оказал влияния на Chrome и IE8, когда новая страница загружается после отправки обрезанного изображения.Обрезанное изображение отображается только в том случае, если я вручную запускаю «обновление» в браузере.
Я проверил файлы изображений на моем сервере, и это подтверждает это: хотя обрезанное изображение было сохранено на моем сервере, файл изображения (с тем жеимя), отображаемое в Chrome, имеет предыдущие не обрезанные размеры.