Я изменяю размер изображения перед загрузкой с помощью библиотеки JavaScript, ссылка здесь https://gist.github.com/dcollien/312bce1270a5f511bf4a Он успешно создал блоб. Моя HTML-форма находится здесь:
<form action="/" class="data-form" method="POST" enctype="multipart/form-data">
<table>
<tr>
<td><?php echo $form['title']->renderLabel(); ?> </td>
<td><?php echo $form['title']->render(); ?>
<?php echo $form['title']->renderError(); ?>
</td>
</tr>
<tr>
<td><?php echo $form['patient_name']->renderLabel(); ?> </td>
<td><?php
echo $form['patient_name']->render();
echo $form['patient_name']->renderError(); ?>
</td>
</tr>
<tr>
<td><?php echo $form['thumbnail']->renderLabel(); ?> </td>
<td><?php
echo $form['thumbnail']->render();
echo $form['thumbnail']->renderError(); ?>
</td>
<td><img id="preview">
</td>
</tr>
<input class="button" type="Submit" value="Save" />
</form>
Мой код JavaScript здесь:
<script>
document.getElementById('clinic_stories_thumbnail').onchange = function(evt) {
ImageTools.resize(this.files[0], {
width: 300, // maximum width
height: 250 // maximum height
}, function(blob, didItResize) {
// didItResize will be true if it managed to resize it, otherwise false (and will return the original file as 'blob')
document.getElementById('preview').src = window.URL.createObjectURL(blob);
$("#clinic_stories_thumbnail").attr('value',blob);
});
};
Я застрял, как загрузить измененный размер большого двоичного объекта на сервер. Я добавил блоб с полем ввода через его атрибут value. Но поле не получает это, и форма отправляется с исходным изображением. Так что посоветуйте, пожалуйста, как мне отправить BLOB-объект с таким же запросом POST. Я не хочу подавать отдельный запрос для блоба. Я хочу отправить большой двоичный объект на сервер с существующим почтовым запросом.