javascript - Django 使用 Ajax 上传多个文件,无需表单

标签 javascript python ajax django image-uploading

我在 Django 2.0 中有一个应用程序,一个用户可以同时上传他们的文凭的许多图像,但我还需要使用 ajax 来实现这一点,这样页面就不会重新加载。

这是我的models.py

class diploma(models.Model):
    user = models.ForeignKey(user, on_delete=models.CASCADE, null=True)
    diploma=models.ImageField(default='nopic.png', null=True)
    def __str__(self):
        return self.diploma

这是我在模板中输入的文件upload.html

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

<input type="file" id="images" name="images[]" multiple accept="image/jpg,image/png,image/jpeg,image/gif">
<a onclick="uploadWithAjax()"> Upload Images </a>

如果您注意到,没有 Form html 标记。只是一个调用函数 uploadWithAjax() 的“a”链接。

这是我的带有 uploadWithAjax() 函数的脚本

function uploadWithAjax()
{
  var files = $('#images')[0].files;
  $.ajax(
  {
    type: "POST",
    url: "/UploadImages/",
    data: "", //I DON'T KNOW WHAT DATA I HAVE TO PUT HERE
    success: function(result)
    {
      alert('IMAGES UPLOADED');
    }
  });
}

我认为我必须在ajax的“数据”属性中发送"file"变量,但我不确定,因为有文件并且不是正常输入。请帮忙。

这是我的 ajax.py 文件,我在其中接收图像

def UploadImages(request):
  diplomas = request.FILES['images'] #I don't know if this is correct

我没有完成 View ,因为我不知道如何继续或如何在我的 bd 表中为我上传的每个图像进行注册。请帮忙!

最佳答案

function uploadWithAjax() {
  var files = $('#images').prop("files");
  if(files.length > 0) {
      $.ajax({
         type: "POST",
         url: "/UploadImages/",
         data: {"images": files}
         success: function(result) {
             alert('IMAGES UPLOADED');
         }
      });
  }
}

在那里,您刚刚传递了图像文件列表。

关于javascript - Django 使用 Ajax 上传多个文件,无需表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48349025/

相关文章:

javascript - 将图像悬停使其变暗

JavaScript:如何从原型(prototype)属性上的另一个函数调用原型(prototype)属性上的函数,所有这些都在闭包内?

python - 列表中的格式化字符串

python - 为什么我的 ajax 代码不能使用 Python Flask 运行?

javascript - 为什么我的选择字段事件处理程序在 Chrome/Android 中不起作用?

javascript - 如何让jsGrid中的列隐藏?

python - PyQt5 拖放到系统文件资源管理器中(带有延迟编码)?

python - Python和ElasticSearch:使用索引将CSV转换为JSON

javascript - 通过ajax发送的Blob通过VB接收

javascript - 需要有关 jQuery 将数据发布到 php 文件的帮助