Jansy-bootstrap ‘File Upload’ — Как сжать файл изображения во время процесса загрузки

Здорово быть частью этого форума.

Я ищу событие сжатия, которое имеет триггер и выполняется во время самого процесса загрузки — здесь я пытаюсь сжать фотографию во время загрузки, используя ‘file-upload’ из jansy bootstrap.

Функция:

function compress($source, $destination, $quality) {
$info = getimagesize($source);
if ($info['mime'] == 'image/jpeg')
$image = imagecreatefromjpeg($source);
elseif ($info['mime'] == 'image/gif')
$image = imagecreatefromgif($source);
elseif ($info['mime'] == 'image/png')
$image = imagecreatefrompng($source);
imagejpeg($image, $destination, $quality);
return $destination;
}

код jansy-bootstrap:

 $photo_name = time();
$photo_type = $_FILES['photo']['name'];
$photo_size = $_FILES['photo']['size'];
$photo_tmp_name = $_FILES['photo']['tmp_name'];$errors     = array();
$maxsize    = 2097152;
$acceptable = array(
'image/jpeg',
'image/jpg',
'image/gif',
'image/png'
);

if(($_FILES['photo']['size'] >= $maxsize) || ($_FILES["photo"]["size"] == 0)) {
$errors[] = 'File too large. File must be less than 2 megabytes.';
?><script type="text/javascript">window.history.back();</script><?php
}

if(!in_array($_FILES['photo']['type'], $acceptable))    {
$errors[] = 'Invalid file type. Only JPG, GIF and PNG types are accepted.';
?><script type="text/javascript">window.history.back();</script><?php
}

if(count($errors) === 0) {

$source_img = $photo_name.'.jpg';
$source = $source_img;
$destination_img = $photo_name.'_c.jpg';

$d = compress($source_img, $destination_img, 90);

move_uploaded_file($_FILES['photo']['tmp_name'], 'upload/'.$d );

} else {
foreach($errors as $error) {
echo '<script>alert("'.$error.'");</script>';

}

die(); //Ensure no more processing is done
}

Невозможно понять, что пошло не так — любая помощь будет благодарна …

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]