Реализовано много методов и функций. Что он может, можете открыть эту картинку и посмотреть

Покажу передачу аякс данных и одну из php-функций изменения размера картинки.
$('#my_form').on('submit', function(e)
{
App.preventdefault(e); // предотвращение отправки формы по умолчанию. App - созданный обьект в начале скрипта с переменными и функциями
var $that = $(this);
if (window.FormData)
{
App.formData = new FormData($that.get(0)); // создаем новый экземпляр объекта и передаем ему нашу форму
} else
{
$.error('FormData не поддерживается');
}
var errors = $that.find('[name=width]').validate(/^(\d{1,4})?$/, '<2225') // тут идут проверки полей
if (errors)
{
$.error('У вас там что-то не в поряде с введёнными данными, ' + errors + ' раза');
}
App.button1.prop("disabled", true); // блокировка кнопки
App.formData.append('ajax', true);
$.ajax(
{
url: $that.attr('action'),
type: $that.attr('method'),
contentType: false, // важно - убираем форматирование данных по умолчанию
processData: false, // важно - убираем преобразование строк по умолчанию
dataType: 'json', // ответ придёт в json формате
data: App.formData, // посылаем php объект с данными из формы
success: function(response)
{
if (response.save == null)
{
App.thumbnail.attr("src", 'img/gon.jpg');
}
App.button1.prop("disabled", false);
}
});
});
Самая простая из php-функций, изменение размера картинки:
/**
* @param string $orig - путь к обрабатываемой картинке
* @param string $path - путь сохранения
* @param int $width - ширина
* @param int $height - высота
*
* @return результат выполнения, true или false
*/
function resize($orig, $path, $width = 0, $height = 0)
{
$result = false;
try {
$img = new \Imagick(realpath($orig));
// если пришла гифка
if ($img->getImageMimeType() == 'image/gif') {
foreach($img as $frame) {
$frame->thumbnailImage($width, $height);
}
$result = $img->writeImages($path, true); // Обратите внимание, writeImages вместо writeImage
}
else {
$img->thumbnailImage($width, $height);
$img->setImageCompression(Imagick::COMPRESSION_JPEG);
$img->setImageCompressionQuality(70);
$result = $img->writeImage($path);
}
$img->clear();
}
catch(ImagickException $e) {
echo 'У нас проблема ' . $e->getMessage() . " в файле " . $e->getFile() . ", строка " . $e->getLine();
}
return $result;
}
Скачать с гитхаб