在表单提交 Django 之前上传图片

Upload images before form submit Django

我要上传图片 Facebook 风格:select 提交表单前的图片,全部上传后,立即提交表单。我知道如何在前端执行此操作,但问题出在后端。我找到了一些在后端管理图像的方法,但我并不满意。所有这一切的大部分是避免存储不会使用的照片,例如如果用户在一些照片已经上传时关闭浏览器。我想到了 3 种上传方式,但我不知道哪种方式最好:

  1. 创建一个"tmp"目录并将所有上传的照片放在那里,当提交表单时将所有使用过的照片移动到另一个目录。 (使用此方法可能会出现一些并发问题)
  2. 在我的数据库中创建一个 TempPhoto table 并执行与之前解决方案相同的操作,将使用过的照片从 TempPhoto 移动到永久 table。
  3. 直接将照片添加到永久table,并在预定时间擦除未使用(与其他实体无关)的照片。 (我想这会是较慢的解决方案)

我认为你的第一种改革方式是最好的方式。您可以创建一个 tmp 目录并将唯一数据(例如 IP 地址)附加到控制并发性的每个图像,然后在 $(window).unload(...) 中编写一些脚本以向后端发送信号以删除该图像(s) 当用户在提交表单之前关闭 window 时,来自 tmp 目录。