Как изменить размер изображения перед отправкой с использованием JavaScript в проекте Django - PullRequest
0 голосов
/ 22 февраля 2019

Введение: У меня есть сообщение, в котором пользователи могут загружать до 8 изображений.Мой метод развертывания не позволяет мою общую загрузку (общее количество всех изображений должно быть более 10 МБ).Поэтому я не могу использовать подушку или другие пакеты, которые уменьшают размер изображения после загрузки.Я думал, что если я использую JavaScript, я могу уменьшить размер изображения, прежде чем я даже отправлю форму.Таким образом, когда я нажимаю «отправить», изображения уже уменьшены, и общее количество всех изображений составляет менее 9 МБ (просто для безопасности)

Подход, который я задумал реализовать: Я думал об использовании http://www.wangyulue.com/assets/image-comversion/example/index.html с кодом здесь на github.https://github.com/WangYuLue/image-conversion.

Или

Использование https://github.com/josefrichter/resize/blob/master/public/preprocess.js

Я не уверен, как их использовать.ниже мой шаблон формы

{% extends 'posts/post_base.html' %}
{% load bootstrap3 %}

{% block postcontent %}
<h2> Create/Update a post</h2>
<form action="" method="post" enctype="multipart/form-data">
    {% csrf_token %}
    {% bootstrap_form form %}
    <h2 class="text-success">Proof Images</h2>
    {% bootstrap_formset formset %}    
    <br/><br/><input type="submit" class="btn btn-primary" value="Post"/>

</form>

{% endblock %} 

Ниже приведены мои модели на всякий случай

class Post(models.Model):
    user = models.ForeignKey(User, related_name='posts')    
    title = models.CharField(max_length=250, unique=True)    
    message = models.TextField()    
    post_image = models.ImageField(upload_to='post_images/')

Ниже модель добавляет остальные изображения

class Prep (models.Model): #(Images)
    post = models.ForeignKey(Post, on_delete=models.CASCADE, related_name='post_prep')
    image = models.ImageField(upload_to='post_prep_images/', blank=True, null=True)
    image_title = models.CharField(max_length=100)
    image_description = models.CharField(max_length=250)

Эти две модели составляют форму. Пожалуйста, дайте мне знать, если вам нужны представления, я также могу добавить их

...